-
Bug
-
Resolution: Done
-
Major
-
2.4.0.GA
I noticed P2P test failures on cli-proton-python's [1] travis CI [2] with python-qpid-proton-0.28.0-1.
[1] https://github.com/rh-messaging/cli-proton-python/
[2] https://travis-ci.org/rh-messaging/cli-proton-python/jobs/535006731
It seems that it's a regression in python-qpid-proton 0.28.0 on closing the connection, 0.27.0 doesn't suffer from that and the tests are passing.
I can reproduce the issue locally by:
- install python-qpid-proton-0.28.0-1
- install cli-proton-python
- cli-proton-python-receiver.py -b localhost:8888 -c 1 --recv-listen --log-msgs dict
- cli-proton-python-sender.py -b localhost:8888 --log-msgs dict --conn-allowed-mechs=ANONYMOUS
- the sent message is received as expected, but it seems that detach/close frames are not received by the receiver and the receiver ends with 'Transport error: amqp:connection:framing-error - connection aborted'
0.28.0:
# PN_TRACE_FRM=1 PYTHONPATH=".." ./receiver.py -b localhost:8888 -c 1 --recv-listen --log-msgs dict [0x2211d20]: <- SASL [0x2211d20]: -> SASL [0x2211d20]:0 -> @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS]] [0x2211d20]:0 <- @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@manged-node-2"] [0x2211d20]:0 -> @sasl-outcome(68) [code=0] [0x2211d20]: <- AMQP [0x2211d20]:0 <- @open(16) [container-id="e4043b9a-7bec-4e83-978d-2d87d968d610", hostname="localhost", channel-max=32767] [0x2211d20]:0 <- @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x2211d20]:0 <- @attach(18) [name="e4043b9a-7bec-4e83-978d-2d87d968d610-23125370-aae0-4c48-ac8f-2393416b70f8", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x2211d20]: -> AMQP [0x2211d20]:0 -> @open(16) [container-id="", channel-max=32767] [0x2211d20]:0 -> @begin(17) [remote-channel=0, next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x2211d20]:0 -> @attach(18) [name="e4043b9a-7bec-4e83-978d-2d87d968d610-23125370-aae0-4c48-ac8f-2393416b70f8", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x2211d20]:0 -> @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10, drain=false] [0x2211d20]:0 <- @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"1", message-format=0] (46) "\x00SpE\x00Ss\xd0\x00\x00\x00\x16\x00\x00\x00\x07@@@@@@\xa3\x0atext/plain\x00St\xd1\x00\x00\x00\x04\x00\x00\x00\x00" {'address': None, 'annotations': None, 'content': None, 'content_encoding': 'None', 'content_type': 'text/plain', 'correlation_id': None, 'creation_time': 0.000000, 'delivery_count': 0, 'durable': False, 'expiration': 0, 'first_acquirer': False, 'group_id': None, 'group_sequence': 0, 'id': None, 'inferred': False, 'instructions': None, 'priority': 4, 'properties': {}, 'reply_to': None, 'reply_to_group_id': None, 'subject': None, 'ttl': 0, 'user_id': ''} [0x2211d20]:0 -> @disposition(21) [role=true, first=0, settled=true, state=@accepted(36) []] [0x2211d20]:0 -> @detach(22) [handle=0, closed=true] [0x2211d20]:0 -> @close(24) [] [0x2211d20]: -> EOS [0x2211d20]: <- EOS ERROR {'cause' :'Transport error: amqp:connection:framing-error - connection aborted'} # PN_TRACE_FRM=1 PYTHONPATH=".." ./sender.py -b localhost:8888 --log-msgs dict --conn-allowed-mechs=ANONYMOUS [0x24e31e0]: -> SASL [0x24e31e0]: <- SASL [0x24e31e0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS]] [0x24e31e0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@manged-node-2"] [0x24e31e0]:0 <- @sasl-outcome(68) [code=0] [0x24e31e0]: -> AMQP [0x24e31e0]:0 -> @open(16) [container-id="e4043b9a-7bec-4e83-978d-2d87d968d610", hostname="localhost", channel-max=32767] [0x24e31e0]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x24e31e0]:0 -> @attach(18) [name="e4043b9a-7bec-4e83-978d-2d87d968d610-23125370-aae0-4c48-ac8f-2393416b70f8", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x24e31e0]: <- AMQP [0x24e31e0]:0 <- @open(16) [container-id="", channel-max=32767] [0x24e31e0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x24e31e0]:0 <- @attach(18) [name="e4043b9a-7bec-4e83-978d-2d87d968d610-23125370-aae0-4c48-ac8f-2393416b70f8", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x24e31e0]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10, drain=false] {'address': None, 'annotations': None, 'content': None, 'content_encoding': 'None', 'content_type': 'text/plain', 'correlation_id': None, 'creation_time': 0.000000, 'delivery_count': 0, 'durable': False, 'expiration': 0, 'first_acquirer': False, 'group_id': None, 'group_sequence': 0, 'id': None, 'inferred': False, 'instructions': None, 'priority': 4, 'properties': {}, 'reply_to': None, 'reply_to_group_id': None, 'subject': None, 'ttl': 0, 'user_id': ''} [0x24e31e0]:0 -> @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"1", message-format=0] (46) "\x00SpE\x00Ss\xd0\x00\x00\x00\x16\x00\x00\x00\x07@@@@@@\xa3\x0atext/plain\x00St\xd1\x00\x00\x00\x04\x00\x00\x00\x00" [0x24e31e0]:0 <- @disposition(21) [role=true, first=0, settled=true, state=@accepted(36) []] [0x24e31e0]:0 <- @detach(22) [handle=0, closed=true] [0x24e31e0]:0 <- @close(24) [] [0x24e31e0]: <- EOS [0x24e31e0]:0 -> @detach(22) [handle=0, closed=true] [0x24e31e0]:0 -> @close(24) []
0.27.0:
# PN_TRACE_FRM=1 PYTHONPATH=".." ./receiver.py -b localhost:8888 -c 1 --recv-listen --log-msgs dict [0x8b6e50]: <- SASL [0x8b6e50]: -> SASL [0x8b6e50]:0 -> @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS]] [0x8b6e50]:0 <- @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@manged-node-2"] [0x8b6e50]:0 -> @sasl-outcome(68) [code=0] [0x8b6e50]: <- AMQP [0x8b6e50]:0 <- @open(16) [container-id="034d238b-a409-43b8-a2e3-98dc512e31e1", hostname="localhost", channel-max=32767] [0x8b6e50]:0 <- @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x8b6e50]:0 <- @attach(18) [name="034d238b-a409-43b8-a2e3-98dc512e31e1-33fdabe2-5d99-4238-97e9-d75668e6d8b2", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x8b6e50]: -> AMQP [0x8b6e50]:0 -> @open(16) [container-id="", channel-max=32767] [0x8b6e50]:0 -> @begin(17) [remote-channel=0, next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x8b6e50]:0 -> @attach(18) [name="034d238b-a409-43b8-a2e3-98dc512e31e1-33fdabe2-5d99-4238-97e9-d75668e6d8b2", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x8b6e50]:0 -> @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10, drain=false] [0x8b6e50]:0 <- @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"1", message-format=0] (46) "\x00SpE\x00Ss\xd0\x00\x00\x00\x16\x00\x00\x00\x07@@@@@@\xa3\x0atext/plain\x00St\xd1\x00\x00\x00\x04\x00\x00\x00\x00" {'address': None, 'annotations': None, 'content': None, 'content_encoding': 'None', 'content_type': 'text/plain', 'correlation_id': None, 'creation_time': 0.000000, 'delivery_count': 0, 'durable': False, 'expiration': 0, 'first_acquirer': False, 'group_id': None, 'group_sequence': 0, 'id': None, 'inferred': False, 'instructions': None, 'priority': 4, 'properties': {}, 'reply_to': None, 'reply_to_group_id': None, 'subject': None, 'ttl': 0, 'user_id': ''} [0x8b6e50]:0 -> @disposition(21) [role=true, first=0, settled=true, state=@accepted(36) []] [0x8b6e50]:0 -> @detach(22) [handle=0, closed=true] [0x8b6e50]:0 -> @close(24) [] [0x8b6e50]: -> EOS [0x8b6e50]:0 <- @detach(22) [handle=0, closed=true] [0x8b6e50]:0 <- @close(24) [] [0x8b6e50]: <- EOS # PN_TRACE_FRM=1 PYTHONPATH=".." ./sender.py -b localhost:8888 --log-msgs dict --conn-allowed-mechs=ANONYMOUS [0x2293c70]: -> SASL [0x2293c70]: <- SASL [0x2293c70]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS]] [0x2293c70]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@manged-node-2"] [0x2293c70]:0 <- @sasl-outcome(68) [code=0] [0x2293c70]: -> AMQP [0x2293c70]:0 -> @open(16) [container-id="034d238b-a409-43b8-a2e3-98dc512e31e1", hostname="localhost", channel-max=32767] [0x2293c70]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x2293c70]:0 -> @attach(18) [name="034d238b-a409-43b8-a2e3-98dc512e31e1-33fdabe2-5d99-4238-97e9-d75668e6d8b2", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x2293c70]: <- AMQP [0x2293c70]:0 <- @open(16) [container-id="", channel-max=32767] [0x2293c70]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x2293c70]:0 <- @attach(18) [name="034d238b-a409-43b8-a2e3-98dc512e31e1-33fdabe2-5d99-4238-97e9-d75668e6d8b2", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x2293c70]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10, drain=false] {'address': None, 'annotations': None, 'content': None, 'content_encoding': 'None', 'content_type': 'text/plain', 'correlation_id': None, 'creation_time': 0.000000, 'delivery_count': 0, 'durable': False, 'expiration': 0, 'first_acquirer': False, 'group_id': None, 'group_sequence': 0, 'id': None, 'inferred': False, 'instructions': None, 'priority': 4, 'properties': {}, 'reply_to': None, 'reply_to_group_id': None, 'subject': None, 'ttl': 0, 'user_id': ''} [0x2293c70]:0 -> @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"1", message-format=0] (46) "\x00SpE\x00Ss\xd0\x00\x00\x00\x16\x00\x00\x00\x07@@@@@@\xa3\x0atext/plain\x00St\xd1\x00\x00\x00\x04\x00\x00\x00\x00" [0x2293c70]:0 <- @disposition(21) [role=true, first=0, settled=true, state=@accepted(36) []] [0x2293c70]:0 <- @detach(22) [handle=0, closed=true] [0x2293c70]:0 <- @close(24) [] [0x2293c70]: <- EOS [0x2293c70]:0 -> @detach(22) [handle=0, closed=true] [0x2293c70]:0 -> @close(24) [] [0x2293c70]: -> EOS