Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Auto Closed
-
0.13
-
None
-
None
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.