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

[proton-c] AMQP error if delivery is aborted with session_outgoing bytes > 0

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • proton-c-0.26.0, proton-c-0.27.0, proton-c-0.27.1, proton-c-0.28.0, proton-c-0.29.0, proton-c-0.30.0
    • proton-c-0.31.0
    • proton-c
    • None

    Description

      Running the test case in https://issues.apache.org/jira/browse/DISPATCH-1265

      The self test is  a two-router network with a test sender sending to router A and a test receiver receiving from router B. The test sender is sending some number of bytes and then aborting the delivery. In the observations here router A is transmitting incorrect AMQP over the interrouter link to router B in response to the abort.

      • A 400K byte message is being transmitted. 320K bytes have already gone over the wire
      • The message is aborted. with  session_outgoing 84992
      • Over the wire six transfers send the 84992 bytes with the same delivery-id and with abort=true

      A dispatch log scraper trace of router A for the interrouter link to router B:

       

        delivery 21 is in progress
      2019-02-08 05:07:41.140975 A0#1480 A [A0_4] -> [B0_1] B transfer [0,10] (21) more transfer_93 - 16346 bytes (pending)
      2019-02-08 05:07:41.141066 A0#1486 A [A0_4] -> [B0_1] B transfer [0,10] (21) more transfer_99 - 16346 bytes (pending)
      2019-02-08 05:07:41.141087 A0#1488 A [A0_4] -> [B0_1] B transfer [0,10] (21) more transfer_102 - 228 bytes (pending)
      2019-02-08 05:07:41.141169 A0#1492 A [A0_4] <- [B0_1] B flow [0,10] (14,250)
        delivery 21 is aborted with session_outgoing 84992
        over the wire the session bytes are bled down with multiple transfers that have both 'more' and 'aborted' set true
      2019-02-08 05:07:41.141514 A0#1513 A [A0_4] -> [B0_1] B transfer [0,10] (21) settled more aborted transfer_93 - 16342 bytes transfer presettled
      2019-02-08 05:07:41.141538 A0#1514 A [A0_4] -> [B0_1] B transfer [0,10] (21) settled more aborted transfer_94 - 16342 bytes transfer presettled
      2019-02-08 05:07:41.141564 A0#1517 A [A0_4] -> [B0_1] B transfer [0,10] (21) settled more aborted transfer_96 - 16342 bytes transfer presettled
      2019-02-08 05:07:41.141603 A0#1521 A [A0_4] -> [B0_1] B transfer [0,10] (21) settled more aborted transfer_99 - 16342 bytes transfer presettled
      2019-02-08 05:07:41.141669 A0#1527 A [A0_4] -> [B0_1] B transfer [0,10] (21) settled more aborted transfer_92 - 16342 bytes transfer presettled
      2019-02-08 05:07:41.141722 A0#1531 A [A0_4] -> [B0_1] B transfer [0,10] (21) settled aborted transfer_93 - 13522 bytes transfer presettled
        delivery 22 is started
      2019-02-08 05:07:41.142542 A0#1576 A [A0_4] -> [B0_1] B transfer [0,10] (22) more transfer_107 - 16346 bytes (pending)
      2019-02-08 05:07:41.142578 A0#1579 A [A0_4] -> [B0_1] B transfer [0,10] (22) more transfer_108 - 16346 bytes (pending)
      2019-02-08 05:07:41.142608 A0#1581 A [A0_4] -> [B0_1] B transfer [0,10] (22) more transfer_109 - 16346 bytes (pending) ...
        eventually peer router B closes the connection
      2019-02-08 05:07:41.144746 A0#1730 A [A0_4] <- [B0_1] B close [0] error :"amqp:session:invalid-field" "sequencing error, expected delivery-id 22, got 21"
      2019-02-08 05:07:41.144767 A0#1732 A [A0_4] <- [B0_1] B EOS

      The transfer at 05:07:41.141514 settles the delivery and the next transfer is an AMQP protocol violation.

      Attachments

        1. PROTON-2005-selftest-printf.txt.txt
          8 kB
          Charles E. Rolke
        2. PROTON-2005-router-print-debug.txt
          562 kB
          Charles E. Rolke
        3. PROTON-2005-router-scrape.html
          1.38 MB
          Charles E. Rolke

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            cliffjansen Clifford Jansen
            chug Charles E. Rolke
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment