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: [email protected]
For additional commands, e-mail: [email protected]