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 2009/08/12 17:49:14 UTC
[jira] Updated: (QPID-1971) bind in fedOpReorigen mode is not
threadsafe for TopicExchange
[ https://issues.apache.org/jira/browse/QPID-1971?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ken Giusti updated QPID-1971:
-----------------------------
Attachment: QPID-1971.diff
Proposed solution: while holding the lock, make a local list of all the keys requiring propagation. Then drop the lock, and propagate the binds for all the keys on that list.
Also modified DirectExchange.cpp - used the same locking pattern.
Added a couple of federation tests that exercise the new codepath.
-K
> bind in fedOpReorigen mode is not threadsafe for TopicExchange
> --------------------------------------------------------------
>
> Key: QPID-1971
> URL: https://issues.apache.org/jira/browse/QPID-1971
> Project: Qpid
> Issue Type: Bug
> Affects Versions: 0.5
> Reporter: Gordon Sim
> Assignee: Ted Ross
> Priority: Blocker
> Fix For: 0.6
>
> Attachments: QPID-1971.diff
>
>
> } else if (fedOp == fedOpReorigin) {
> for (BindingMap::iterator iter = bindings.begin();
> iter != bindings.end(); iter++) {
> const BoundKey& bk = iter->second;
> if (bk.fedBinding.hasLocal()) {
> propagateFedOp(iter->first, string(), fedOpBind, string());
> }
> }
> }
> Note no lock held when iterating over bindings in snippet above.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org