You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alex Rudyy (JIRA)" <ji...@apache.org> on 2018/06/22 16:11:00 UTC

[jira] [Created] (QPID-8212) [JMS AMQP 0-x][AMQP 0-8..0-91] Consumer close can block for 60 seconds and endup in time-out exception

Alex Rudyy created QPID-8212:
--------------------------------

             Summary: [JMS AMQP 0-x][AMQP 0-8..0-91] Consumer close can block for 60 seconds and endup in time-out exception
                 Key: QPID-8212
                 URL: https://issues.apache.org/jira/browse/QPID-8212
             Project: Qpid
          Issue Type: Bug
          Components: JMS AMQP 0-x
    Affects Versions: qpid-java-client-0-x-6.3.1
            Reporter: Alex Rudyy
             Fix For: qpid-java-client-0-x-6.3.2


When method {{MessageConsumer#close()}} is invoked in one thread and method {{Connection#close()}} is invoked in another thread, the incoming {{BasicCancelOk}} frame can be ignored due to {{Connection#_closed}} flag being set. As result, the call  to {{MessageConsumer#close()}} can block for 60 seconds and end up in exception due to not being able to receive {{BasicCancelOk}}. Invocation of {{Connection#close()}}  also gets blocked due to message delivery lock being hold on consumer close.

The defect was introduced as part of changes made against QPID-8185 in commit 
[f89f6c2f45d11fc63551d0d61c17eceedd6bd247|https://git-wip-us.apache.org/repos/asf?p=qpid-jms-amqp-0-x.git;h=f89f6c2]

Method {{AMQProtocolSession#isClosedForInput}} checks whether session is closed for input by calling {{AMQSession#isClosed()}}. The latter returns true when either {{AMQSession#_closed}} or {{AMQConnection#_closed}} holds  {{true}}.  Only {{AMQSession#_closed}}  should be checked in {{AMQProtocolSession#isClosedForInput}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org