[
https://issues.apache.org/jira/browse/QPID-3356?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gordon Sim updated QPID-3356:
-----------------------------
Description:
start two brokers, link amq.match using a dynamic route in one direction, start
two subscribers on the destination broker (e.g two drain instances from
amq.match; {link:{x-bindings:[{arguments:{source:B, x-match:any}}]}} and
amq.match; {link:{x-bindings:[{arguments:{format:standard, x-match:any}}]}}
respectively), you then see the following error appear on the source broker
after a second or so:
error Detected two management objects with the same identifier:
0-614-1--18(org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:amq.match,org.apache.qpid.broker:queue:bridge_queue_1_a51ddbb5-bac4-4e6a-ba45-3a2e1b096858,)
Further, duplicate messages can then be received at the subscribers. E.g. send
a message to the source broker that matches each subscriber and observe that
the message is received twice by each of them (e.g. spout --content my-message
-P format=standard -P source=B amq.match)
This appears to be due to the same binding key being used for two different
subscriptions. E.g. if you changes the addresses for the drains above to:
amq.match; {link:{x-bindings:[{key: key1, arguments:{source:B, x-match:any}}]}}
and amq.match; {link:{x-bindings:[{key: key2, arguments:{format:standard,
x-match:any}}]}} respectively, i.e. add unique keys to each, then you avoid the
error and the message duplication.
was:
start two brokers, link amq.match using a dynamic route in one direction, start
two subscribers on the destination broker (e.g two drain instances from
amq.match; {link:{x-bindings:[{arguments:{source:B, x-match:any}}]}} and
amq.match; {link:{x-bindings:[{arguments:{format:standard, x-match:any}}]}}
respectively), you then see the following error appear on the source broker
after a second or so:
error Detected two management objects with the same identifier:
0-614-1--18(org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:amq.match,org.apache.qpid.broker:queue:bridge_queue_1_a51ddbb5-bac4-4e6a-ba45-3a2e1b096858,)
There also seems to be duplicate queues in place (though the management tools
don't show them, I think because of the error above), such that you get
duplicated messages. E.g. send a message to the source broker that matches each
subscriber and observe that the message is received twice by each of them (e.g.
spout --content my-message -P format=standard -P source=B amq.match)
This appears to be due to the same binding key being used for two different
subscriptions. E.g. if you changes the addresses for the drains above to:
amq.match; {link:{x-bindings:[{key: key1, arguments:{source:B, x-match:any}}]}}
and amq.match; {link:{x-bindings:[{key: key2, arguments:{format:standard,
x-match:any}}]}} respectively, i.e. add unique keys to each, then you avoid the
error and the message duplication.
> Dynamic Federation doesn't work as expected for headers exchange
> ----------------------------------------------------------------
>
> Key: QPID-3356
> URL: https://issues.apache.org/jira/browse/QPID-3356
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: 0.13
> Reporter: Gordon Sim
>
> start two brokers, link amq.match using a dynamic route in one direction,
> start two subscribers on the destination broker (e.g two drain instances from
> amq.match; {link:{x-bindings:[{arguments:{source:B, x-match:any}}]}} and
> amq.match; {link:{x-bindings:[{arguments:{format:standard, x-match:any}}]}}
> respectively), you then see the following error appear on the source broker
> after a second or so:
> error Detected two management objects with the same identifier:
> 0-614-1--18(org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:amq.match,org.apache.qpid.broker:queue:bridge_queue_1_a51ddbb5-bac4-4e6a-ba45-3a2e1b096858,)
> Further, duplicate messages can then be received at the subscribers. E.g.
> send a message to the source broker that matches each subscriber and observe
> that the message is received twice by each of them (e.g. spout --content
> my-message -P format=standard -P source=B amq.match)
> This appears to be due to the same binding key being used for two different
> subscriptions. E.g. if you changes the addresses for the drains above to:
> amq.match; {link:{x-bindings:[{key: key1, arguments:{source:B,
> x-match:any}}]}} and amq.match; {link:{x-bindings:[{key: key2,
> arguments:{format:standard, x-match:any}}]}} respectively, i.e. add unique
> keys to each, then you avoid the error and the message duplication.
--
This message is automatically generated by JIRA.
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:[email protected]