[
https://issues.apache.org/jira/browse/QPID-4672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13615776#comment-13615776
]
Justin Ross commented on QPID-4672:
-----------------------------------
Reviewed by Gordon. Approved for 0.22.
> C++ Broker deadlock detaching XmlExchange sessions
> --------------------------------------------------
>
> Key: QPID-4672
> URL: https://issues.apache.org/jira/browse/QPID-4672
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.20
> Environment: C++ Broker, autotools build, make check or
> run_federation_tests
> Reporter: Chuck Rolke
> Priority: Critical
>
> Self test federation.FederationTests.test_dynamic_topic locks up. Pstack
> shows three threads with the same trace:
> #0 pthread_rwlock_wrlock ()
> #1 qpid::broker::XmlExchange::unbind()
> #2 qpid::broker::XmlExchange::fedUnbind()
> #3 qpid::broker::XmlExchange::bind()
> #4 qpid::broker::Queue::bind()
> #5 qpid::broker::Broker::bind()
> #6 qpid::broker::SemanticState::unbindSessionBindings()
> #7 qpid::broker::SemanticState::closed()
> #8 qpid::broker::SessionState::~SessionState()
> #9 qpid::broker::SessionState::~SessionState()
> #10 qpid::broker::SessionHandler::handleDetach()
> #11 qpid::amqp_0_10::SessionHandler::detach()
> The lock occurs because there are two simultaneous session detach calls going
> on. Each takes out the Rlock and then tries to take out the Wlock. Neither
> will get the Wlock until everyone else releases their Rlock. Subsequent
> detach calls fall into the same catch as they get the Rlock but not the Wlock.
> This condition is present in both the XmlExchange and DirectExchange. I'll
> have a patch for review shortly.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]