[ https://issues.apache.org/jira/browse/ARTEMIS-2113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy A. Bish closed ARTEMIS-2113. ------------------------------------ Resolution: Information Provided This is a limitation of the proton-j protocol engine that cannot process pipelined Open, Begin, Attach and Detach framings due to the temporal squashing being done. The broker has not part at that level and can't intervene. A workaround is to await the initial attach response before sending the detach to ensure the broker has a chance to process the data without pipelining. > When AMQP links are opened and closed in quick succession, Artemis doesn’t > always respond with attach/detach frames confirming the opening/closing of > the links > --------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: ARTEMIS-2113 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2113 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP > Affects Versions: 2.6.3 > Environment: This test was done in .NET using the Amqp.Net Lite > library 2.1.4 (which is the latest version). > Reporter: Simon Chalmers > Priority: Major > Attachments: ArtemisTest.zip, artemis-2.6.3.log, artemis-2.7.0.log, > dotnet-artemis-2.6.3.txt, dotnet-artemis-2.7.0.txt > > > A trace of a message exchange with Artemis where this has occurred is below. > The lines highlighted in yellow show opening and then closing two AMQP links, > but Artemis doesn’t respond after that with its own attach/detach frames, > which acknowledge the opening/closing of those links. The lines highlighted > in green are heartbeat frames sent to Artemis, sent every 15 seconds, which > illustrates that one minute passed without receiving the attach/detach frames > from Artemis. > SEND AMQP 3 1 0 0 > RECV sasl-mechanisms(sasl-server-mechanisms:[PLAIN,ANONYMOUS]) > SEND sasl-init(mechanism:PLAIN,initial-response:...,hostname:localhost) > RECV sasl-outcome(code:0) > SEND AMQP 0 1.0.0 > SEND (ch=0) > open(container-id:AMQPNetLite-43a6c9ad,host-name:localhost,max-frame-size:262144,channel-max:255,idle-time-out:2147483647) > RECV AMQP 0 1 0 0 > SEND (ch=0) > begin(next-outgoing-id:4294967293,incoming-window:2048,outgoing-window:2048,handle-max:63) > RECV (ch=0) > open(container-id:0.0.0.0,max-frame-size:131072,channel-max:65535,idle-time-out:30000,offered-capabilities:[sole-connection-for-container,DELAYED_DELIVERY,SHARED-SUBS,ANONYMOUS-RELAY],properties:[product:apache-activemq-artemis,version:2.6.3]) > {color:#f6c342}SEND (ch=0) > attach(name:link1,handle:0,role:False,source:source(),target:target(address:q1),initial-delivery-count:0) > SEND (ch=0) detach(handle:0,closed:True) > SEND (ch=0) > attach(name:link0,handle:1,role:False,source:source(),target:target(address:q0),initial-delivery-count:0) > SEND (ch=0) detach(handle:1,closed:True){color} > RECV (ch=0) > begin(remote-channel:0,next-outgoing-id:1,incoming-window:2147483647,outgoing-window:2147483647,handle-max:65535) > {color:#14892c}SEND (ch=0) empty > SEND (ch=0) empty > SEND (ch=0) empty > SEND (ch=0) empty{color} > Note that this doesn’t always happen. Sometimes Artemis does respond, as > shown by the lines highlighted in bold/grey in the trace below. > SEND AMQP 3 1 0 0 > RECV sasl-mechanisms(sasl-server-mechanisms:[PLAIN,ANONYMOUS]) > SEND sasl-init(mechanism:PLAIN,initial-response:...,hostname:localhost) > RECV sasl-outcome(code:0) > SEND AMQP 0 1.0.0 > SEND (ch=0) > open(container-id:AMQPNetLite-b00e0be7,host-name:localhost,max-frame-size:262144,channel-max:255,idle-time-out:2147483647) > RECV AMQP 0 1 0 0 > RECV (ch=0) > open(container-id:0.0.0.0,max-frame-size:131072,channel-max:65535,idle-time-out:30000,offered-capabilities:[sole-connection-for-container,DELAYED_DELIVERY,SHARED-SUBS,ANONYMOUS-RELAY],properties:[product:apache-activemq-artemis,version:2.6.3]) > SEND (ch=0) > begin(next-outgoing-id:4294967293,incoming-window:2048,outgoing-window:2048,handle-max:63) > RECV (ch=0) > begin(remote-channel:0,next-outgoing-id:1,incoming-window:2147483647,outgoing-window:2147483647,handle-max:65535) > {color:#f6c342}SEND (ch=0) > attach(name:link1,handle:0,role:False,source:source(),target:target(address:q1),initial-delivery-count:0) > SEND (ch=0) detach(handle:0,closed:True) > SEND (ch=0) > attach(name:link0,handle:1,role:False,source:source(),target:target(address:q0),initial-delivery-count:0) > SEND (ch=0) detach(handle:1,closed:True){color} > *{color:#707070}RECV (ch=0) > attach(name:link1,handle:0,role:True,snd-settle-mode:2,rcv-settle-mode:0,source:source(),target:target(address:q1)){color}* > RECV (ch=0) > flow(next-in-id:4294967293,in-window:2147483647,next-out-id:1,out-window:2147483647,handle:0,delivery-count:0,link-credit:1000) > *{color:#707070}RECV (ch=0) detach(handle:0,closed:True){color}* > {color:#f6c342}SEND (ch=0) > attach(name:link1,handle:0,role:False,source:source(),target:target(address:q1),initial-delivery-count:0) > SEND (ch=0) detach(handle:0,closed:True){color} > {color:#14892c}SEND (ch=0) empty > SEND (ch=0) empty > SEND (ch=0) empty > SEND (ch=0) empty{color} -- This message was sent by Atlassian Jira (v8.20.10#820010)