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

Locking may lead to deadlock for concurrent receiver

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.22
    • Fix Version/s: 0.23
    • Component/s: C++ Client
    • Labels:
      None

      Description

      The lock ordering leaves open the possibility of a deadlock if one thread is fetching on a receiver, another is accepting messages received by it and a third is closing the receiver.

      Thread 1 holds SessionImpl's lock and is blocked on IncomingMessage's lock. Thread 2 holds IncomingMessage's lock and is blocked on ReceiverImpl's lock. Thread 3 holds the ReceiverImpl's lock and is blocked on SessionImpl's lock.

      I have been unable to reproduce this myself, but an actual incidence has been reported: https://bugzilla.redhat.com/show_bug.cgi?id=703891

        Attachments

          Activity

            People

            • Assignee:
              gsim Gordon Sim
              Reporter:
              gsim Gordon Sim
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: