Uploaded image for project: 'AMQ Clients'
  1. AMQ Clients
  2. ENTMQCL-1364

[python] P2P detach frame not received results in connection aborted

    XMLWordPrintable

Details

    • Yorba, Anza

    Description

      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:

      1. install python-qpid-proton-0.28.0-1
      2. install cli-proton-python
      3. cli-proton-python-receiver.py -b localhost:8888 -c 1 --recv-listen --log-msgs dict
      4. cli-proton-python-sender.py -b localhost:8888 --log-msgs dict --conn-allowed-mechs=ANONYMOUS
      5. 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
      

      Attachments

        Activity

          People

            astitcher Andrew Stitcher
            pematous Petr Matousek
            Radim Kubis Radim Kubis
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: