[
https://issues.apache.org/jira/browse/QPID-8212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16542839#comment-16542839
]
ASF subversion and git services commented on QPID-8212:
-------------------------------------------------------
Commit ea1292afb3638ae737f7f502ece3677356a5332f in qpid-jms-amqp-0-x's branch
refs/heads/6.3.x from [~alex.rufous]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-jms-amqp-0-x.git;h=ea1292a ]
QPID-8212: Throw exception only when session is not closing
(cherry picked from commit a48e285e3e6057cf4114ec057bffa685e3f51531)
> [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
> Assignee: Alex Rudyy
> Priority: Blocker
> 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 {{true}} being returned from
> {{Session#isClosed()}} because of {{Connection#_closed}} flag being set to
> true on connection close. 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 as 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: [email protected]
For additional commands, e-mail: [email protected]