Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-939

Router aborts transfer, closes connection with error on QIT amqp_large_content_test

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • Backlog
    • Container
    • None

    Description

      The Qpid Interop Test large content test repeatedly fails when run against a single-node dispatch router (dispatch config file attached).

      The test that reproduces this most readily but without too much length is the following:

      python -m qpid_interop_test.amqp_large_content_test --include-shim ProtonCpp --include-type list
      WARNING: Rhea Javascript shims not found
      Test Broker: qpid-dispatch-router v.1.0.0 on <platform not found>
      
      test_list_ProtonCpp->ProtonCpp (__main__.ListTestCase) ... ERROR
      
      ======================================================================
      ERROR: test_list_ProtonCpp->ProtonCpp (__main__.ListTestCase)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
      File "/home/kvdr/RedHat/install/lib/python2.7/site-packages/qpid_interop_test/amqp_large_content_test.py", line 196, in inner_test_method
      timeout)
      File "/home/kvdr/RedHat/install/lib/python2.7/site-packages/qpid_interop_test/amqp_large_content_test.py", line 121, in run_test
      raise InteropTestError('Receive shim \'%s\':\n%s' % (receive_shim.NAME, receive_obj))
      InteropTestError: Receive shim 'ProtonCpp':
      amqp_large_content_test receiver error: receiver read failure
      
      
      ----------------------------------------------------------------------
      Ran 1 test in 0.801s
      
      FAILED (errors=1)
      

      The router left the following message:

      SERVER (info) Connection from ::1:57020 (to ::1:amqp) failed: amqp:connection:framing-error connection aborted

      The attached capture file shows a typical observable sequence of events on the wire that lead up to the failure. The test that created this error consists of 4 messages:

      1. A 1MB message consisting of a list containing a single 1MB string (delivery-id 0);
      2. A 1MB message consisting of a list containing 16 64kB strings (delivery-id 1);
      3. A 10MB message consisting of a list containing a single 10MB string (delivery-id 2);
      4. A 10MB message consisting of a list containing 16 655MB strings (delivery-id 3).

      The following is a summary of what transpires:

      • Frame 1527: The sender completes sending the last message (delivery-id 3) to the router, and closes the connection (without waiting for dispositions). At this point, the receiver is in the process of being sent message-id 2.
      • Frame 1539: Last transfer for message-id 2 from dispatch to receiver.
      • Frame 1545 - 1598: Message-id 3 starts being sent to receiver.
      • Frame 1600: Dispatch router returns close to sender (initiated in frame 1527). No errors or arguments.
      • Frame 1605: Receiver sends flow, disposition for delivery-id 2 (completed in frame 1539).
      • Frame 1607 - 1618: Continue to send message with delivery-id 3 to receiver.
      • Frame 1619: Transfer aborted. A transfer performative with more=False, Settled=True, Aborted=True.
      • Frame 1622: Close sent from Dispatch to Receiver with Condition: amqp:connection:framing-error, Description: connection aborted.

      All instances of this error have occurred between dispatch router and the receiver once the sender has closed its connection.

       

      Attachments

        1. qdrouterd.conf
          2 kB
          Kim van der Riet
        2. dispatch.multiframe.06.pcapng
          36.92 MB
          Kim van der Riet

        Activity

          People

            Unassigned Unassigned
            kpvdr Kim van der Riet
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: