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

          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open In Progress In Progress
          9m 58s 1 Philip Harvey 31/Aug/12 13:37
          In Progress In Progress Reviewable Reviewable
          7d 2h 15m 1 Keith Wall 07/Sep/12 15:52
          Reviewable Reviewable Resolved Resolved
          15s 1 Keith Wall 07/Sep/12 15:52
          Keith Wall made changes -
          Status Ready To Review [ 10006 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Keith Wall added a comment -

          Reviewed, no comments. Patch applied

          Show
          Keith Wall added a comment - Reviewed, no comments. Patch applied
          Keith Wall made changes -
          Status In Progress [ 3 ] Ready To Review [ 10006 ]
          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
          Philip Harvey made changes -
          Link This issue relates to QPID-4276 [ QPID-4276 ]
          Philip Harvey made changes -
          Description In the new performance test framework, the ParticipantExecutor does these two things at the end when the participant has completed:

          # Send the results
          # 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-TODO.
          In the new performance test framework, the ParticipantExecutor does these two things at the end when the participant has completed:

          # Send the results
          # 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.
          Philip Harvey made changes -
          Assignee Philip Harvey [ philharveyonline ] Keith Wall [ k-wall ]
          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.
          Philip Harvey made changes -
          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.
          Philip Harvey made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Philip Harvey made changes -
          Field Original Value New Value
          Assignee Philip Harvey [ philharveyonline ]
          Philip Harvey created issue -

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development