Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-523

ER14 Broker fails AMQP.Net Lite client Transaction tests

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • A-MQ 7.0.0.ER17
    • A-MQ 7.0.0.ER14
    • None
    • Hide

      1. Clone the repo, check out the branch
      2. Build with Visual Studio 2015
      3. Set TransactionTestProgram to be the 'startup project'
      4. Run under debug in visual studio with breakpoints and trace output.

      Show
      1. Clone the repo, check out the branch 2. Build with Visual Studio 2015 3. Set TransactionTestProgram to be the 'startup project' 4. Run under debug in visual studio with breakpoints and trace output.

      Lite's built in self tests have been failing all along. A recent re-try reveals some details on how the tests fail.

      Test code

      The built in self tests can run against A-MQ7 fairly simply. The problem with that is that there is no diagnostic trace of any value and the network traces are very complex. It's hard to tell where in the test things go wrong. The test code also runs in a subprocess of MsTest so that breakpoints are not practical.

      I took the selftest code and promoted it to a stand-alone executable. Then I added a bunch of detailed trace statements that are interleaved with the network SEND and RECV traces to create a helpful narrative of what the program is seeing and what is the failure mode.

      The code is in a amqpnetlite git clone at

      Running successfully against Lite built-in broker

      Lite ships with a test broker and the transaction tests pass when run against that.

      Attached files hold console logs and wireshark traces for the passing tests:

      • txn-test-log-good-testbroker.txt - console log of success
      • txn-test-log-good-testbroker.pcapng - pcap trace of successful test run

      Failure running against ER14 broker

      Running the test(s) against ER14 fails.

      Attached files hold console logs and wireshark traces for the failing tests:

      • txn-test-log-fail-ER14.txt - console log of fail
      • txn-test-log-fail-ER14.pcapng - pcap trace of failed test run

      Preliminary Analysis

      The test tries to accept some messages under a transaction context that is not properly closed. The expectation is that the messages are simply placed back onto a list of acquired-but-neither-accepted-nor-rejected items. Instead the broker transfers them to the client again. See txn-test-log-fail-ER14.pcapng file frames 134 to 142.

      This test is complicated. Maybe a broker guru can help figure out if the issue is indeed the broker or if the client test is misunderstanding transactional behavior.

        1. txn-test-log-good-testbroker.pcapng
          20 kB
        2. txt-test-log-fail-ER14.pcapng
          26 kB
        3. txn-test-log-fail-ER14.txt
          20 kB
        4. txn-test-log-good-testbroker.txt
          14 kB
        5. ttp-ER14.txt
          55 kB
        6. ttp-ER14.pcapng
          67 kB
        7. ttp-qpidd.pcapng
          60 kB
        8. ttp-qpidd.txt
          58 kB
        9. ttp-testbroker.pcapng
          57 kB
        10. ttp-testbroker.txt
          41 kB
        11. Amqp.Net.dll
          217 kB

              mtaylor1@redhat.com Martyn Taylor (Inactive)
              crolke@redhat.com Chuck Rolke (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: