[
https://issues.apache.org/jira/browse/QPID-7876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16109656#comment-16109656
]
ASF GitHub Bot commented on QPID-7876:
--------------------------------------
Github user chrisrichardson77 commented on a diff in the pull request:
https://github.com/apache/qpid-cpp/pull/7#discussion_r130713409
--- Diff: management/python/bin/qpid-route ---
@@ -331,53 +337,63 @@ class RouteManager:
if b[0] != self.local.name():
self.qmf.delBroker(b[1])
- def addRoute(self, remoteBroker, exchange, routingKey, tag, excludes,
interbroker_mechanism="", dynamic=False):
- if dynamic and config._srclocal:
- raise Exception("--src-local is not permitted on dynamic
routes")
-
- self.addLink(remoteBroker, interbroker_mechanism)
- link = self.getLink()
- self.checkLink(link)
-
+ def addBridge(self, link, src, dest, key, tag, excludes, srcIsQueue,
srcIsLocal,
+ durable, dynamic, sync, credit):
bridges = self.agent.getObjects(_class="bridge")
for bridge in bridges:
if bridge.linkRef == link.getObjectId() and \
- bridge.dest == exchange and bridge.key == routingKey
and not bridge.srcIsQueue:
+ bridge.dest == dest and bridge.src == src and
bridge.srcIsQueue == srcIsQueue and \
+ bridge.srcIsLocal == srcIsLocal and bridge.dynamic ==
dynamic:
if not config._quiet:
- raise Exception("Duplicate Route - ignoring: %s(%s)" %
(exchange, routingKey))
+ raise Exception("Duplicate Route - ignoring: %s(%s)" %
(dest, key or src))
sys.exit(0)
if config._verbose:
print "Creating inter-broker binding..."
- res = link.bridge(config._durable, exchange, exchange, routingKey,
tag,
- excludes, False, config._srclocal, dynamic,
- config._ack, credit=config._credit)
+
+ name = "%s:%s:%s:%s" % (dest, key or src, srcIsQueue, srcIsLocal)
--- End diff --
I was unsure of how to generate a new name for the bridge. Is this
sufficient?
> qpid-route does not properly consider src-local when matching bridges
> ---------------------------------------------------------------------
>
> Key: QPID-7876
> URL: https://issues.apache.org/jira/browse/QPID-7876
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: qpid-cpp-1.36.0
> Reporter: Chris Richardson
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> qpid-route does not properly consider src-local when matching bridges. The
> practical upshot of this is that it may consider routes to be duplicates when
> they are in fact not.
> Take the following (slightly contrived) scenario:
> Brokers A and B both have queues named "test.queue" and default exchanges
> named "amq.direct".
> We would like a queue route to pull messages from B:test.queue to
> A:amq.direct and a src_local route to push messages from A:test.queue to
> B:amq.direct. Since qpid-route does not consider the src-local flag, it will
> regard the second route to be a duplicate and will not allow it to be added.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]