activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Tully <gary.tu...@gmail.com>
Subject Re: contradictory patch of ConduitBridge for removing of subscriptions
Date Wed, 27 Oct 2010 13:51:56 GMT
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 <email@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

Mime
View raw message