qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-8212) [JMS AMQP 0-x][AMQP 0-8..0-91] Consumer close can block for 60 seconds and endup in time-out exception
Date Fri, 13 Jul 2018 10:16:00 GMT

    [ 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
> ------------------------------------------------------------------------------------------------------
>                 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

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

View raw message