[ https://issues.apache.org/jira/browse/QPID-7306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15345124#comment-15345124 ]
ASF subversion and git services commented on QPID-7306: ------------------------------------------------------- Commit 1749782 from [~aconway] in branch 'qpid/trunk' [ https://svn.apache.org/r1749782 ] QPID-7306: Fix race conditions during Queue destruction. Stack traces indicate a Queue was being destroyed concurrently while still in use by its ManagedObject. ManagedObject holds a plain pointer to the Manageable object (e.g. Queue) it belongs to. The Manageable calls ManagedObject::resourceDestroy() when it is deleted, but without any locking. Added a locked wrapper class ManageablePtr so destroy is atomic with respect to other calls via ManageablePtr, calls after pointer is reset to 0 in destroy() are skipped. Call resourceDestroy() in Queue::~Queue if it was not called already. This is probably redundant given given the fixes above but can't hurt. Queue::destroyed() was also being called without locking and could be called concurrrently, e.g. if auto-delete happens concurrently with delete via QMF or by a 0-10 client. Moved the destroyed() call into QueueRegistry::destroy(), using QueueRegistry lock to guarantee it is called exactly once. > Fix memory bugs and race conditions found in a Qpid HA deployment > ----------------------------------------------------------------- > > Key: QPID-7306 > URL: https://issues.apache.org/jira/browse/QPID-7306 > Project: Qpid > Issue Type: Bug > Components: C++ Broker > Affects Versions: 0.32 > Reporter: Alan Conway > Assignee: Alan Conway > > Bugs related to thread safety and lifecycle of Links/Bridges, management > objects and Queues. These were discovered in a HA environment but most of the > issues could theoretically affect a stand alone broker also. For more > information see https://bugzilla.redhat.com/show_bug.cgi?id=1333767 -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org