Return-Path: Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: (qmail 95527 invoked from network); 5 Feb 2010 20:42:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 5 Feb 2010 20:42:00 -0000 Received: (qmail 75056 invoked by uid 500); 5 Feb 2010 20:42:00 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 74997 invoked by uid 500); 5 Feb 2010 20:41:59 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 74987 invoked by uid 99); 5 Feb 2010 20:41:59 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Feb 2010 20:41:59 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Feb 2010 20:41:52 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id AB0D629A001E for ; Fri, 5 Feb 2010 12:41:32 -0800 (PST) Message-ID: <1727732510.12181265402492695.JavaMail.jira@brutus.apache.org> Date: Fri, 5 Feb 2010 20:41:32 +0000 (UTC) From: "ying (JIRA)" To: dev@activemq.apache.org Subject: [jira] Updated: (AMQ-2135) network of brokers distributes messages to brokers with 0 consumers with dynamicOnly=true set In-Reply-To: <955609518.1235180939398.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: ae95407df07c98740808b2ef9da0087c [ https://issues.apache.org/activemq/browse/AMQ-2135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ying updated AMQ-2135: ---------------------- Attachment: AMQ-2135-022010.patch AMQ2135Test.java hi, the old AMQ-2135-UnitTest.patch has a Thread.sleep(1000) so after the producer produce, wait for 1s, then it starts to check how many messages are consumed and apparently when the message number increases, it needs to give more time for the consumer to consume the messages. I made a patch on today's trunk r906983 Attached are the AMQ2135Test.java which demonstrate the problem with the trunk code. You will see the test will never quit because it will never consume all the messages produced. and apply AMQ-2135-022010.patch it will fix the issue. > network of brokers distributes messages to brokers with 0 consumers with dynamicOnly=true set > --------------------------------------------------------------------------------------------- > > Key: AMQ-2135 > URL: https://issues.apache.org/activemq/browse/AMQ-2135 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.2.0 > Environment: linux (centos 4.6) using ActiveMQ 5.2.0 binary distribution > Reporter: Don Hoffman > Attachments: AMQ-2135-022010.patch, AMQ-2135-Patch-03182009.patch, AMQ-2135-UnitTest.patch, AMQ2135Test.java, testamq1.log, testamq2.log, testamq3.log > > > using only the example code, the 5.2.0 release can be made to distribute messages to brokers with no consumers, which remain at those brokers and are never consumed, unless a consumer later connects specifically to those brokers. > this bug is not reproducible in 5.1.0. > to reproduce: > run 3 brokers. connect a consumer to brokers 1 and 2. connect a producer to broker 1. not all messages produced will be received by the 2 consumers. note that the specific brokers connected to matters for the 3-broker case. for example, on my machine, if the producer connects to broker 2 instead of broker 1, all messages are received. you may need to try various combinations of consumer/producer connections to reproduce the problem, but this specific setup breaks reliably for me. > this problem becomes more pronounced and easier to reproduce as the number of brokers increases. > specific configuration used to reproduce: > 3 broker config xml files: > testamq1.xml > xmlns="http://www.springframework.org/schema/beans" > xmlns:amq="http://activemq.apache.org/schema/core" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd > http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> > > > > > > > > > > > > > testamq2.xml > xmlns="http://www.springframework.org/schema/beans" > xmlns:amq="http://activemq.apache.org/schema/core" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd > http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> > > > > > > > > > > > > > testamq3.xml > xmlns="http://www.springframework.org/schema/beans" > xmlns:amq="http://activemq.apache.org/schema/core" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd > http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> > > > > > > > > > > > > > run 3 brokers: > bin/activemq xbean:testamq1.xml > bin/activemq xbean:testamq2.xml > bin/activemq xbean:testamq3.xml > run 2 consumers (from examples directory): > ant consumer -Durl="failover:(tcp://localhost:61616)" -Dsubject="test.queue" -Dmax=100 -DsleepTime=3 > ant consumer -Durl="failover:(tcp://localhost:61617)" -Dsubject="test.queue" -Dmax=100 -DsleepTime=3 > run 1 producer (from examples directory) with 10 messages: > ant producer -Durl="failover:(tcp://localhost:61616)" -Dsubject="test.queue" -Dmax=10 > consumers will not receive all messages. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.