what it needs is a test case, there was one attached to https://issues.apache.org/activemq/browse/AMQ-2596, maybe that can help validate. thanks for the heads up.
On 27 October 2010 14:14, chris <em...@christianhoffmann.info> wrote: > Hi, > > I noticed that in 5.3.2 the removal of a consumer in a network of > brokers sometimes triggers the removal of the network bridged > subscription even though there are still some other running consumers. > The problem was resolved in 5.4 with revision 949742 to handle > AMQ-2754. But looking at the code, this revision seems to undo a fix > for a memory leak that has been done earlier: revision 902009 for > AMQ-2530. I wonder if with the actual code, we're now back to the > situation where conduit bridge "works" but with memory leak. > > Rgds, > Chris > > PS: > The following patch for 5.3.2 might do the trick, but I guess this > needs some verification from someone who knows what this is supposed > to do: > > --- > a/activemq-core/src/main/java/org/apache/activemq/network/ConduitBridge.java > Mon > Oct 04 11:32:53 2010 +0200 > +++ > b/activemq-core/src/main/java/org/apache/activemq/network/ConduitBridge.java > Tue > Oct 26 18:56:17 2010 +0200 > @@ -96,7 +96,6 @@ > > @Override > protected void removeDemandSubscription(ConsumerId id) throws > IOException { > - super.removeDemandSubscription(id); > List<DemandSubscription> tmpList = new > ArrayList<DemandSubscription>(); > > for (Iterator i = > subscriptionMapByLocalId.values().iterator(); i.hasNext();) { > @@ -112,7 +111,7 @@ > } > for (Iterator<DemandSubscription> i = tmpList.iterator(); > i.hasNext();) { > DemandSubscription ds = i.next(); > - removeSubscription(ds); > + > super.removeDemandSubscription(ds.getRemoteInfo().getConsumerId()); > if (LOG.isDebugEnabled()) { > LOG.debug(configuration.getBrokerName() + " removing > sub on " + localBroker + " from " + remoteBrokerName + " : " + > ds.getRemoteInfo()); > } > -- http://blog.garytully.com http://fusesource.com