[ 
https://issues.apache.org/activemq/browse/AMQ-1333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rob Davies updated AMQ-1333:
----------------------------

    Priority: Major  (was: Critical)

> Broker stops delivering messages to some consumers
> --------------------------------------------------
>
>                 Key: AMQ-1333
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1333
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 4.1.0
>         Environment: WinXP
>            Reporter: Vadim Pesochinskiy
>             Fix For: 4.1.2
>
>
> This is a clone of AMQ-1251 to put the fix into 4.1.2. I think there is a 
> serious synchronization issue here.
> -----------------------------------------------------------------------------------------
> I have around 40 consumers taking messages from a single queue. After awhile 
> 1 or 2 consumers stop receiveing any messages. Going to JMX and stopping 
> corresponding connection causes re-connect and messages are delivered again.
> I reproduced it twice in QA enviroment and now it happened in production. I 
> tried to instrument the code and set the log in debug, but that changed 
> timing and I failed to reproduce it after the changes.
> I suspect that runtime association b/w Queue and Consumer objects is lost on 
> the Broker side.
> One of the suspects is the empty catch block in the RoundRobinDispatchPolicy 
> (line 64) class. It is possible that the CopyOnWrite array list is messed up 
> and it fails when removed consumer is added back.
> BTW CopyOnWrite list is good when you mostly read, but not so good when you 
> write for every message delivery and empty catch blocks are bad in any case.
> if (firstMatchingConsumer != null) {
> // Rotate the consumer list.
> try { consumers.remove(firstMatchingConsumer); 
> consumers.add(firstMatchingConsumer); } catch (Throwable bestEffort) {
> }
> }
> This issue now occurs on a very slow and busy machine after consumer gets a 
> dozen of messages it stops getting others.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to