You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "james (JIRA)" <ji...@apache.org> on 2016/10/05 14:59:20 UTC

[jira] [Commented] (AMQ-6456) Exclusive consumer may stop consuming in broker network

    [ https://issues.apache.org/jira/browse/AMQ-6456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15548999#comment-15548999 ] 

james commented on AMQ-6456:
----------------------------

For testing, i used a queue and two brokers in a network.  note that the messageTTL on the DiscoveryNetworkConnector must be set high enough to allow the messages to be moved back and forth.  i dumped ~300 messages on the queue and setup an exclusive consumer on each broker (so only one consumer will be actively consuming the messages).  the consumer is artificially slow in consuming the messages (waits a few seconds per message) so that you can test the handling of messages as the consumers move.  i then restart the consumers periodically, which causes the "chosen" consumer to shift between the brokers.  without the patch, you will eventually end up in a situation where the "chosen" consumer is local to one node, but all the messages are on the other node.  however, the ConditionalNetworkForwardingBridge will refuse to forward the messages to the other broker because a local consumer exists (even though it isn't the "chosen" one).

> Exclusive consumer may stop consuming in broker network
> -------------------------------------------------------
>
>                 Key: AMQ-6456
>                 URL: https://issues.apache.org/jira/browse/AMQ-6456
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.1, 5.14.1
>            Reporter: james
>            Priority: Critical
>         Attachments: exclusive_consumer_patch.txt
>
>
> When exclusive consumers are restarted in a network of brokers, the "chosen" consumer may shift from one broker to the next.  In order for existing messages to be consumed, they must be forwarded from the broker on which they currently exist to the broker on which the chosen consumer now resides.  However, the ConditionalNetworkBridgeFilter incorrectly decides that it should not forward the messages and they end up getting stuck on the old broker.
> We found the issue in 5.9.1, but the relevant code looks unchanged in the current 5.x release.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)