Description of problem: ./spout "amq.direct;{create: always,node:{type: topic,x-bindings: [{ exchange: 'amq.direct', queue: 'q', key: 'key' }]}}" 2011-08-16 16:03:51 warning Exception received from broker: not-allowed: not-allowed: Exchange names beginning with "amq." or "qpid." are reserved. (exchange="amq.direct") (qpid/broker/SessionAdapter.cpp:94) [caused by 1 \x07:\x01] Create failed for exchange amq.direct; not-allowed: not-allowed: Exchange names beginning with "amq." or "qpid." are reserved. (exchange="amq.direct") (qpid/broker/SessionAdapter.cpp:94) 2011-08-16 16:03:51 warning Ignoring frame while closing connection: Frame[BEbe; channel=1; {SessionDetachBody: name=7f7a3962-b8b2-4176-8ea9-5cbdba5d741f; }] Version-Release number of selected component (if applicable): qpid-cpp-client-0.10-6 How reproducible: 100% Steps to Reproduce: 1. qpid-config add queue q 2. spout "amq.direct;{create: always,node:{type: topic,x-bindings: [{ exchange: 'amq.direct', queue: 'q', key: 'key' }]}}" 3. Actual results: Not-allowed exception. Expected results: The binding specified in the address is created, message is sent on that address. Additional info:
Fixed upstream: http://svn.apache.org/viewvc?view=rev&rev=1158370
This issue has been fixed. Verified on RHEL5.7 and RHEL6.2, architectures: x86_64, i686 packages installed: qpid-cpp-mrg-0.14-3.el5 qpid-cpp-0.14-1.el6 -> VERIFIED
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: Attempts to create a sender/receiver to/from a predefined exchange and utilise a create policy in the address in order to establish some node level bindings to it. Consequence: Such attempts failed due to the c++ client incorrectly trying to declare the predefined exchange without setting the passive flag as required by AMQP 0-10 for exchanges with reserved names. Fix: Exchanges with reserved names are now treated as special cases and the passive flag will always be set when declaring them as part of a create policy. Result: Attempts to establish bindings defined in the node section of an address whose named node is a predefined exchange will no longer fail.
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/RHSA-2012-0529.html