Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-959

On error Proton can send an open and a close frame before sending the AMQP header

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • proton-0.10
    • proton-0.10
    • None
    • None

    Description

      In the following trace of some transport tests you will see that many of the tests have open/close frames before the AMQP header is sent.

      Trace from some of the tests:

      $  PN_TRACE_FRM=1 proton-test *ServerTransport*
      proton_tests.transport.ServerTransportTest.testBigGarbage ...................................[0x1ef9b40]:0 -> @open(16) [container-id=""]
      [0x1ef9b40]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="Unknown protocol detected: 'GARBAGE_XXX'"]]
      [0x1ef9b40]:  -> AMQP
      [0x1ef9b40]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testBindAfterOpen ................................[0x20d1460]:  -> AMQP
      [0x20d1460]:0 -> @open(16) [container-id="test-container", hostname="test-hostname", channel-max=32767]
      [0x20d1460]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647]
      [0x1fa0350]:  <- AMQP
      [0x1fa0350]:0 <- @open(16) [container-id="test-container", hostname="test-hostname", channel-max=32767]
      [0x1fa0350]:0 <- @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647]
       pass
      proton_tests.transport.ServerTransportTest.testCloseHead .................................... pass
      proton_tests.transport.ServerTransportTest.testCloseTail ....................................[0x1fa0350]:0 -> @open(16) [container-id=""]
      [0x1fa0350]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="No valid protocol header found"]]
      [0x1fa0350]:  <- EOS
       pass
      proton_tests.transport.ServerTransportTest.testEOS ..........................................[0x20b55d0]:0 -> @open(16) [container-id=""]
      [0x20b55d0]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="No valid protocol header found"]]
      [0x20b55d0]:  <- EOS
      [0x20b55d0]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testEOSAfterSASL .................................[0x20b55d0]:  -> SASL
      [0x20b55d0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@pansy.local"]
      [0x20b55d0]:  -> AMQP
      [0x1fa0350]:  <- SASL
      [0x1fa0350]:0 <- @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@pansy.local"]
      [0x1fa0350]:Authenticated user: anonymous with mechanism ANONYMOUS
      [0x1fa0350]:  <- AMQP
      [0x1fa0350]:  <- EOS
      [0x1fa0350]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testGarbage ......................................[0x20b55d0]:0 -> @open(16) [container-id=""]
      [0x20b55d0]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="Unknown protocol detected: 'GARBAGE_'"]]
      [0x20b55d0]:  -> AMQP
      [0x20b55d0]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testHeader .......................................[0x1fa0350]:  <- AMQP
      [0x1fa0350]:0 -> @open(16) [container-id=""]
      [0x1fa0350]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="connection aborted"]]
      [0x1fa0350]:  <- EOS
      [0x1fa0350]:  -> AMQP
      [0x20b55d0]:  <- AMQP
      [0x20b55d0]:0 <- @open(16) [container-id=""]
      [0x20b55d0]:0 <- @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="connection aborted"]]
      [0x20b55d0]:  <- EOS
      [0x1fa0350]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testPartial ......................................[0x20b55d0]:0 -> @open(16) [container-id=""]
      [0x20b55d0]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="End of input stream before protocol detection: 'AMQ' (connection aborted)"]]
      [0x20b55d0]:  -> AMQP
      [0x20b55d0]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testPeek ......................................... pass
      proton_tests.transport.ServerTransportTest.testProtocolNotSupported .........................[0x20b55d0]:0 -> @open(16) [container-id=""]
      [0x20b55d0]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="Incompatible AMQP connection detected: 'AMQP\x01\x01\x0a\x00'"]]
      [0x20b55d0]:  -> AMQP
      [0x20b55d0]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testSmallGarbage .................................[0x1fa0350]:0 -> @open(16) [container-id=""]
      [0x1fa0350]:0 -> @close(24) [error=@error(29) [condition=:"amqp:connection:framing-error", description="Unknown protocol detected: 'XXX'"]]
      [0x1fa0350]:  -> AMQP
      [0x1fa0350]:  -> EOS
       pass
      proton_tests.transport.ServerTransportTest.testUnpairedPop .................................. pass
      Totals: 13 tests, 13 passed, 0 skipped, 0 ignored, 0 failed
      [andrew@pansy bld]$ 
      

      Attachments

        Activity

          People

            astitcher Andrew Stitcher
            astitcher Andrew Stitcher
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: