Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3355

Client aborts when replaying sender after connection recovery

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.7, 0.10
    • Fix Version/s: 0.13
    • Component/s: C++ Client
    • Labels:
      None

      Description

      There is a race condition between qpid::client::SessionImpl::waitForCompletion and qpid::client::SessionImpl::~SessionImpl. If one thread is waiting for a
      completion and another thread causes the destructor for the session to be invoked, the destructor can abort the client if waitForCompletion is still holding the state mutex. The reason this occurs is because waitForCompletion is not holding a Waiter::ScopedWait, so the destructor completes while the
      mutex is still being held. This was discovered when testing connection loss and recovery.

        Attachments

        1. QPID-3355.patch
          0.4 kB
          Jason Dillaman

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              dillaman Jason Dillaman
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: