Return-Path: Delivered-To: apmail-geronimo-activemq-dev-archive@www.apache.org Received: (qmail 37558 invoked from network); 14 Aug 2006 20:35:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 14 Aug 2006 20:35:17 -0000 Received: (qmail 16355 invoked by uid 500); 14 Aug 2006 20:35:17 -0000 Delivered-To: apmail-geronimo-activemq-dev-archive@geronimo.apache.org Received: (qmail 16330 invoked by uid 500); 14 Aug 2006 20:35:16 -0000 Mailing-List: contact activemq-dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-dev@geronimo.apache.org Delivered-To: mailing list activemq-dev@geronimo.apache.org Received: (qmail 16321 invoked by uid 99); 14 Aug 2006 20:35:16 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Aug 2006 13:35:16 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [209.237.227.198] (HELO brutus.apache.org) (209.237.227.198) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Aug 2006 13:35:15 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 6313541001D for ; Mon, 14 Aug 2006 20:32:23 +0000 (GMT) Message-ID: <11750256.1155587543402.JavaMail.jira@brutus> Date: Mon, 14 Aug 2006 13:32:23 -0700 (PDT) From: "Kevin Yaussy (JIRA)" To: activemq-dev@geronimo.apache.org Subject: [jira] Commented: (AMQ-776) ConduitBridge can malfunction when first of a set of consumers goes away In-Reply-To: <25909583.1151330211650.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ https://issues.apache.org/activemq/browse/AMQ-776?page=comments#action_36780 ] Kevin Yaussy commented on AMQ-776: ---------------------------------- I'll attach a patch file for DemandForwardingBridgeSupport.java which is baselined on the 4.0.1 version. It includes the logging changes from my other call, which you've already applied to 4.0.2. When I was analyzing the problem, it looked to me like there was more to the problem than just clearing out the subscription maps (which is what the 4.0.2 code does). It needed to forward the subscription removal to the broker, which is why my patch calls removeSubscription, which forwards the removal to the broker code, but also removes the entry from the local subscription map. It did not make any difference whether I cleared the remote subscription map, so that step is not in the patch (but could be for cleanliness). I've downloaded the current 4.0.2 snapshot, and applied this change (replacing the 4.0.2 version of clearDownSubscriptions). However, the problem still persists in 4.0.2. So, given other changes in 4.0.2, the change is not compatible - which is bad. The first patch for this call, ConduitBridge.patch, is applicable to 4.0.2. > ConduitBridge can malfunction when first of a set of consumers goes away > ------------------------------------------------------------------------ > > Key: AMQ-776 > URL: https://issues.apache.org/activemq/browse/AMQ-776 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 4.0.1 > Reporter: Kevin Yaussy > Assigned To: Rob Davies > Priority: Critical > Fix For: 4.0.3 > > Attachments: ConduitBridge.patch > > > When the following scenario is followed, any of the subsequent consumers will stop receiving messages. I've reproduced this using the ConsumerTool, and ProducerTool supplied in the example area of the distribution. > +++++++++++++++++++++++ > Start Broker A > Start Broker B > Start Consumer 1, connecting to Broker B, consuming FOO > Start Consumer 2, connecting to Broker B, consuming FOO > Start Publisher, connecting to Broker A, publishing FOO > Ctl-C out of Consumer 1 > Consumer 2 stops receiving messages > +++++++++++++++++++ > Seems to me that ConduitBridge is supposed to track all consumers for a given subscription, by way of DemandSubscription. It is seeding DemandSubscription with the originating consumer, but when subsequent consumers are added, the ConduitBridge::addToAlreadyInterestedConsumers re-adds the original subscriber to the DemandSubscription's map - so the map only ever has the original subscription. > I've attached a patch. Hope the change is good. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira