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