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

Link route tests which test the drain feature fail intermittently

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.7.0
    • 0.8.0
    • Container
    • None

    Description

      There is test called test_www_drain_support_all_messages in system_tests_link_routes that fails intermittently. Here is the output of the test

      [gmurthy@localhost build]$  /usr/bin/python "/home/gmurthy/opensource/dispatch/build/tests/run.py" "-m" "unittest" "-v" "system_tests_link_routes.LinkRouteTest.test_www_drain_support_all_messages"
      test_www_drain_support_all_messages (system_tests_link_routes.LinkRouteTest) ... 
      FAIL
      
      ======================================================================
      FAIL: test_www_drain_support_all_messages (system_tests_link_routes.LinkRouteTest)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/home/gmurthy/opensource/dispatch/tests/system_tests_link_routes.py", line 542, in test_www_drain_support_all_messages
          self.assertEqual(None, drain_support.error)
      AssertionError: None != 'Timeout Expired: sent: 10 rcvd: 7'
      
      ----------------------------------------------------------------------
      Ran 1 test in 9.421s
      
      FAILED (failures=1)
      

      The test uses 3 routers (routers A, B and C) with router A acting as the broker and the senders and receivers connected router C and they send/receive on link routed addresses. The messages sent to router C are link-routed to router B and go on to router A and are eventually link routed back to router B and finally to a receiver attached to router C.

      The sender sends 10 messages and the receiver initially issues a flow of 4 followed by a drain of 20. This means that the remaining 6 messages must come thru to the receiver. The problem in that in router B, the 6 transfers from router A to router B are followed by a response flow frame (drain=true). In router B, this flow frame sometimes gets ahead of the transfers and shuts down the remaining transfers.

      The following frame trace shows the flow frame coming in from router C and being sent to router A which followed by 6 transfer frames and a response flow frame arriving from router A. Note now that the router B forwards 3 of the 6 transfers to router C and tries sending the response flow frame before the remaining 3 transfers. Because of this the receiver is not seeing all 10 messages.

      Fri Mar  3 13:49:11 2017 SERVER (trace) [3]:4 <- @flow(19) [next-incoming-id=4, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=4, link-credit=20, drain=true] (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 ROUTER_CORE (trace) Core action 'link_flow' (/home/gmurthy/opensource/dispatch/src/router_core/router_core_thread.c:82)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 -> @flow(19) [next-incoming-id=4, incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=4, link-credit=20, drain=true] (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @transfer(20) [handle=0, delivery-id=4, delivery-tag=b"\x04\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x04\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @transfer(20) [handle=0, delivery-id=5, delivery-tag=b"\x05\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x05\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @transfer(20) [handle=0, delivery-id=6, delivery-tag=b"\x06\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x06\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @transfer(20) [handle=0, delivery-id=7, delivery-tag=b"\x07\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x07\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @transfer(20) [handle=0, delivery-id=8, delivery-tag=b"\x08\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x08\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @transfer(20) [handle=0, delivery-id=9, delivery-tag=b"\x09\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x09\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [2]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=10, outgoing-window=2147483647, handle=0, delivery-count=24, link-credit=0, drain=true] (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [3]:4 -> @transfer(20) [handle=0, delivery-id=4, delivery-tag=b"\x04\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x04\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [3]:4 -> @transfer(20) [handle=0, delivery-id=5, delivery-tag=b"\x05\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x05\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [3]:4 -> @transfer(20) [handle=0, delivery-id=6, delivery-tag=b"\x06\x00\x00\x00\x00\x00\x00\x00", message-format=0, settled=true, more=false] (96) "\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR\x00\x00Ss\xd0\x00\x00\x00"\x00\x00\x00\x0d@@@@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00St\xd1\x00\x00\x00\x0b\x00\x00\x00\x02\xa0\x03seqT\x06\x00Sw\xa0\x0bHello World" (/home/gmurthy/opensource/dispatch/src/server.c:197)
      Fri Mar  3 13:49:11 2017 SERVER (trace) [3]:4 -> @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=7, outgoing-window=2147483647, handle=0, delivery-count=24, link-credit=0, drain=true] (/home/gmurthy/opensource/dispatch/src/server.c:197)
      

      Attachments

        Issue Links

          Activity

            People

              tross Ted Ross
              gmurthy Ganesh Murthy
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: