Bug 1249659
| Summary: | not-allowed error while creating binding for a default topic node | ||
|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Petr Matousek <pematous> |
| Component: | python-qpid | Assignee: | messaging-bugs <messaging-bugs> |
| Status: | ASSIGNED --- | QA Contact: | Messaging QE <messaging-qe-bugs> |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | Development | CC: | iboverma, jross, zkraus |
| Target Milestone: | --- | Keywords: | Regression |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 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 of problem: When creating a binding from a default exchange to a queue (exchange is used in the address/as a target/) and the node type is specified in the address string the binding creation fails with the following exception: qpid.messaging.exceptions.SessionError: not-allowed: Exchange names beginning with "amq." or "qpid." are reserved. This is a regression. In the released versions of python-qpid, the binding was created with the same command (please see below). Version-Release number of selected component (if applicable): python-qpid-0.34-1 How reproducible: 100% Steps to Reproduce: 1. qpid-config add queue q 2. ./spout "amq.direct;{ create:always, node:{type: topic}, link: { x-bindings: [{queue:q}] } }" 3. The binding is not created and the following error appears: not-allowed: Exchange names beginning with "amq." or "qpid." are reserved. Actual results: The binding is not created and the following error appears: not-allowed: Exchange names beginning with "amq." or "qpid." are reserved. Expected results: No error message, binding between the exchange and the queue is created Additional info: python-qpid-0.34-1 (MRGM-3.2) # qpid-config add queue q # ./spout "amq.direct;{ create:always, node:{type: topic}, link: { x-bindings: [{queue:q}] } }" Traceback (most recent call last): File "./spout", line 107, in <module> snd = ssn.sender(addr) File "<string>", line 6, in sender File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 623, in sender sender._ewait(lambda: sender.linked) File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 853, in _ewait result = self.session._ewait(lambda: self.error or predicate(), timeout) File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 593, in _ewait self.check_error() File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 582, in check_error raise self.error qpid.messaging.exceptions.SessionError: not-allowed: Exchange names beginning with "amq." or "qpid." are reserved. (exchange="amq.direct") (/builddir/build/BUILD/qpid-cpp-0.34/src/qpid/broker/SessionAdapter.cpp:85)(530) # qpid-config -r queues q Queue 'q' bind [q] => '' python-qpid-0.30-6 (MRGM-3.1) # qpid-config add queue q # ./spout "amq.direct;{ create:always, node:{type: topic}, link: { x-bindings: [{queue:'q'}] } }" Message(properties={'spout-id': 'fccd8de4-aa3a-451f-a5a3-7c5320609109:0'}, content_type='text/plain') # qpid-config -r queues q Queue 'q' bind [q] => '' bind [] => amq.direct The issue doesn't appear when the node type is not specified: # ./spout "amq.direct;{ create:always, link: { x-bindings: [{queue:'q'}] } }" Message(properties={'spout-id': '5fee54d3-6e60-495e-95f5-da987868074b:0'}, content_type='text/plain') # qpid-config -r queues q Queue 'q' bind [q] => '' bind [] => amq.direct creating binding from the queue (queue is used as the address, which is probably more proper use case) works also as expected: # ./spout "q;{ create:always, node: { type:queue }, link: { x-bindings: [{exchange:'amq.direct'}] } }" Message(properties={'spout-id': '2cf8f8ff-c1db-419a-800a-6cba2705c9c6:0'}, content_type='text/plain') # qpid-config -r queues q Queue 'q' bind [q] => '' bind [] => amq.direct