You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Kim van der Riet (JIRA)" <ji...@apache.org> on 2018/06/07 17:10:00 UTC

[jira] [Created] (QPID-8206) [linearstore] Deadlock possible in InactivityFireEvent if fire() is called at the same time as cancel()

Kim van der Riet created QPID-8206:
--------------------------------------

             Summary: [linearstore] Deadlock possible in InactivityFireEvent if fire() is called at the same time as cancel()
                 Key: QPID-8206
                 URL: https://issues.apache.org/jira/browse/QPID-8206
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker
            Reporter: Kim van der Riet
            Assignee: Kim van der Riet


A deadlock has been observed in InactivityFireEvent if {{InactivityFireEvent::fire()}} triggered by the timer occurs at almost the same time as {{InactivityFireEvent::cancel()}} on another thread, and which occurs if the queue is deleted.

The mutex {{InactivityFireEvent::_ifeStateLock}} becomes deadlocked if the thread calling {{cancel()}} obtains the lock, but a fire event is imminent. The {{fire()}} call will then be blocked on this mutex. However, cancel cannot complete until fire competes owing to the sys::Time Monitor which waits for all fires to complete before allowing the cancel to occur.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org