You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Martyn Taylor (JIRA)" <ji...@apache.org> on 2015/10/27 15:41:27 UTC

[jira] [Created] (ARTEMIS-284) Prevent thread interleaving on ClientConsumerImpl close methods

Martyn Taylor created ARTEMIS-284:
-------------------------------------

             Summary: Prevent thread interleaving on ClientConsumerImpl close methods
                 Key: ARTEMIS-284
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-284
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker
    Affects Versions: 1.1.0
            Reporter: Martyn Taylor


There are situations where a consumer can be closed down from a number of places, for example:

* If a client topic is deleted from the server, the server issues a CloseConsumer packet, which will trigger the consumer to close.

* When an MDB is shutdown all Consumers assocated with the MDB are closed.

A problem arises when these things happen parrallel and multiple threads try to close down a consumer.  The consumer will eventually log warning messages and ultimately throw an error.

11:18:54,631 WARN  [org.apache.activemq.artemis.core.client] (Thread-16 (ActiveMQ-client-global-threads-633087758)) AMQ212002: Timed out waiting for handler to complete processing

11:18:54,632 ERROR [org.apache.activemq.artemis.core.server] (Thread-11 (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=d370b51e-7678-11e5-b10e-af2a5d4a5196-148307791-514838245)) AMQ224049: Cannot find consumer with id 0

Add some concurrency control around the Consumer.Close method should resolve this.



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