Description of problem: Having defined two ambiguous node (queue and exchange of the same name), messages are delivered to both the exchange and queue when the exchange was defined first (if the queue is defined first the behaviour is as expected). Version-Release number of selected component (if applicable): python-qpid-0.22-15 How reproducible: 100% Steps to Reproduce: 1. drain -f "ambiguous_node;{'node': {'type': 'topic'}, 'create': 'receiver'}" 2. drain -f "ambiguous_node;{'node': {'type': 'queue'}, 'create': 'receiver'}" 3. spout "ambiguous_node;{'node': {'type': 'queue'}}" 4. spout "ambiguous_node;{'node': {'type': 'topic'}}" 5. spout "ambiguous_node 6. all the three messages are delivered to both the nodes (message from step 3. and 5. shall be delivered to the queue, message from step 4. shall be delivered to the exchange) Actual results: Messages are routed to both the ambiguous nodes regardless of the node type specified in the address string. Expected results: Messages are routed only to the node type defined in the address string when ambiguous nodes exists. Additional info:
I agree with Gordon that the following description of this issue is more appropriate: If an exchange named x exists, then an address such as 'x; create:always, node: {type:queue}' resolves to the exchange and the queue is not created, (also changing summary.)
Fixed upstream: https://svn.apache.org/r1613129 (https://svn.apache.org/r1613131 also required for swigged tests)
verified on python-qpid-0.22-17
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHEA-2014-1296.html