Bug 1122857

Summary: ambiguous nodes: queue is not created if the exchange of the same name exists
Product: Red Hat Enterprise MRG Reporter: Petr Matousek <pematous>
Component: python-qpidAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: Petr Matousek <pematous>
Severity: medium Docs Contact:
Priority: unspecified    
Version: DevelopmentCC: gsim, iboverma, lzhaldyb, vhubeika
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-qpid-0.22-17 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-24 15:12:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Petr Matousek 2014-07-24 08:48:21 UTC
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:

Comment 1 Petr Matousek 2014-07-24 11:28:24 UTC
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.)

Comment 2 Gordon Sim 2014-07-24 13:55:57 UTC
Fixed upstream: https://svn.apache.org/r1613129

(https://svn.apache.org/r1613131 also required for swigged tests)

Comment 6 Valiantsina Hubeika 2014-08-04 13:28:58 UTC
verified on 
python-qpid-0.22-17

Comment 7 errata-xmlrpc 2014-09-24 15:12:25 UTC
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