You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ken Giusti (JIRA)" <qp...@incubator.apache.org> on 2010/04/15 19:11:48 UTC

[jira] Assigned: (QPID-2507) C++ broker can deadlock when processing a bind.

     [ https://issues.apache.org/jira/browse/QPID-2507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ken Giusti reassigned QPID-2507:
--------------------------------

    Assignee: Ken Giusti

> C++ broker can deadlock when processing a bind.
> -----------------------------------------------
>
>                 Key: QPID-2507
>                 URL: https://issues.apache.org/jira/browse/QPID-2507
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>         Environment: c++ broker on linux.
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>
> Rarely happens, but I was lucky enough to catch this on the debugger.
> Broker locks due to lock inversion.   Here's the flow:
> thread 1 (broker): 
> 1) gets bind request for the management topic exchange
> 2) binds to the management topic exchange  [takes topic->lock]
> 3) attempts to call management agent allocId() [takes mgmt agent->userLock]
> At the same time:
> thread 4 (mgmt agent periodic timer)
> 1) periodic processing [takes mgmt agent->userLock]
> 2) call topicexchange::route() [takes topic->lock]
> thread one holds the topic->lock, tries to take mgmt agent->userLock
> thread four holds mgmt agent->userLock, tries to take topic->lock
> deadlock.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org