Qpid
  1. Qpid
  2. QPID-4275

Java Performance Tests - race condition between closing test consumer and test connection

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.19
    • Component/s: Java Performance Tests
    • Labels:
      None

      Description

      In the new performance test framework, the ParticipantExecutor does these two things at the end when the participant has completed:

      1. Send the results
      2. Tell the participant to release its resources.

      When this is done in the order listed, the client may receive a TEAR_DOWN_TEST command, which causes the connection to be closed, while it is inside releseResources(). This provokes the client deadlock reported in QPID-4276.

        Issue Links

          Activity

          Hide
          Keith Wall added a comment -

          Reviewed, no comments. Patch applied

          Show
          Keith Wall added a comment - Reviewed, no comments. Patch applied
          Hide
          Alex Rudyy added a comment -

          I reviewed the patch attached.
          The changes looks good for me

          Show
          Alex Rudyy added a comment - I reviewed the patch attached. The changes looks good for me
          Hide
          Philip Harvey added a comment -

          Please could you review this patch and commit if you're happy with it. Thanks.

          Show
          Philip Harvey added a comment - Please could you review this patch and commit if you're happy with it. Thanks.
          Hide
          Philip Harvey added a comment -

          Attached patch.

          Now releasing participant resources before sending results to avoid race condition between consumer.close and connection.close. The latter is triggered by the TEAR_DOWN_TEST command send in response to sendResults.

          Show
          Philip Harvey added a comment - Attached patch. Now releasing participant resources before sending results to avoid race condition between consumer.close and connection.close. The latter is triggered by the TEAR_DOWN_TEST command send in response to sendResults.

            People

            • Assignee:
              Keith Wall
              Reporter:
              Philip Harvey
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development