[
https://issues.apache.org/jira/browse/QPID-8100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16365995#comment-16365995
]
ASF subversion and git services commented on QPID-8100:
-------------------------------------------------------
Commit 1911d163b2fe21e6630ccf16730d30917ca888c9 in qpid-broker-j's branch
refs/heads/master from [~k-wall]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=1911d16 ]
QPID-8100: [Broker-J] [AMQP 0-10] Ensure that in error cases, session.detach is
sent on the same channel as arrived the incoming frame.
> [Broker-J] [AMQP 0-10] SESSION_BUSY sent on wrong channel leading to hung
> Messaging API based application
> ---------------------------------------------------------------------------------------------------------
>
> Key: QPID-8100
> URL: https://issues.apache.org/jira/browse/QPID-8100
> Project: Qpid
> Issue Type: Bug
> Components: Broker-J
> Affects Versions: 0.32, qpid-java-broker-7.0.0, qpid-java-broker-7.0.1
> Environment: * Qpid Broker-J 0.32 derivative
> * Qpid Cpp Client using messaging API.
> Reporter: Keith Wall
> Priority: Major
>
> If, during session attachment, the Broker detects that the 0-10 session is
> already in use by the same principal, the Broker is required to detach the
> session by sending a {{session.detach}} on the same channel. Currently owing
> to a defect, the Broker sends this detach on channel 0, regardless of the
> channel used by the peer.
> This defect was a contributory factor in a larger problem. It prevented an
> application from recovering automatically. In that case, a Qpid CPP
> Messaging API, recovering from a missing heartbeat, entered a hung state
> whilst attaching the existing session. The client library discarded the
> {{session.detach}} on the unexpected channel, so it continued to await the
> {{session.attached}}, which never came.
> {noformat}
> /// original session attach
> 2018-02-15 13:17:50 [Network] trace SENT
> [[10.211.55.3:60054-10.241.132.41:5672]]: Frame[BEbe; channel=1;
> {SessionAttachBody: name=e2baafab-5e5f-4daf-8276-33ccaa9f940a; }]
> 2018-02-15 13:17:50 [Network] trace RECV
> [[10.211.55.3:60054-10.241.132.41:5672]]: Frame[BEbe; channel=1;
> {SessionAttachedBody: name=e2baafab-5e5f-4daf-8276-33ccaa9f940a; }]
> 2018-02-15 13:17:50 [Network] trace SENT
> [[10.211.55.3:60054-10.241.132.41:5672]]: Frame[BEbe; channel=1;
> {SessionRequestTimeoutBody: timeout=0; }]
> /// snip - later heartbeat timeout
> 2018-02-15 13:18:20 [Client] debug Traffic timeout
> /// snip - reconnecting again
> 2018-02-15 13:18:20 [System] info Connecting: 10.241.132.41:5672
> /// snip -reuse the same session id
> 2018-02-15 13:18:28 [Client] debug Known-brokers for connection:
> 2018-02-15 13:18:28 [Network] trace SENT
> [[10.211.55.3:60056-10.241.132.41:5672]]: Frame[BEbe; channel=1;
> {SessionAttachBody: name=e2baafab-5e5f-4daf-8276-33ccaa9f940a; }]
> 2018-02-15 13:18:28 [Network] trace RECV
> [[10.211.55.3:60056-10.241.132.41:5672]]: Frame[BEbe; channel=0;
> {SessionDetachedBody: name=e2baafab-5e5f-4daf-8276-33ccaa9f940a; code=1; }]
> 2018-02-15 13:18:28 [Client] info Connection
> [10.211.55.3:60056-10.241.132.41:5672] dropping frame received on invalid
> channel: Frame[BEbe; channel=0; {SessionDetachedBody:
> name=e2baafab-5e5f-4daf-8276-33ccaa9f940a; code=1; }]
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]