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. dispatch.multiframe.06.pcapng
          36.92 MB
          Kim van der Riet
        2. qdrouterd.conf
          2 kB
          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: