Description of problem: When a queue is deleted, any messages within the queue are delivered to that queue's alternate exchange. If no bindings in that exchange match, then the messages are dropped. This happens even if the exchange has and alternate exchange. This makes it impossible for messages rerouted after an auto-delete to ever go in to a dead-letter queue, which is the actual use case. Version-Release number of selected component (if applicable): qpid-tools-0.7.946106-11.el5 qpid-cpp-client-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-client-ssl-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-mrg-debuginfo-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-client-devel-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-client-rdma-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-server-store-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-server-rdma-0.7.946106-24_ptc_hotfix_4.el5 python-qpid-0.7.946106-14.el5 rh-qpid-cpp-tests-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-server-devel-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-server-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-server-ssl-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-client-devel-docs-0.7.946106-24_ptc_hotfix_4.el5 qpid-cpp-server-cluster-0.7.946106-24_ptc_hotfix_4.el5 How reproducible: Always Steps to Reproduce: 1. Start a broker on 5672 with authentication off 2. Run attached script Actual results: No messages are drained from "Alternate" Expected results: One message is drained from "Alternate"
Created attachment 480007 [details] Test Script
Fixed upstream in r1076604.
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: When rerouting orphaned or rejected messages to a queues alternate-exchange, if there were no matching bindings the broker did not then consider the exchanges alternate-exchange. Consequence: Orphaned or rejected messages were dropped rather than following a legitimately defined path. Fix: Modified broker to test whether the rerouting through the queues alternate-exchange was successful and if not attempt rerouting to that exchanges alternate-exchange if defined. Result: Orphaned/rejected messages no longer dropped if the exchange they are routed to first has an alternate exchange.
This issue has been fixed Verified on RHEL4.9, RHEL5.6 and RHEL6.1, architectures: i386, x86_64 packages installed: python-qpid-0.10-1.el5 qpid-cpp-client-devel-docs-0.10-1.el5 qpid-qmf-0.10-2.el5 qpid-cpp-server-devel-0.10-1.el5 qpid-cpp-server-xml-0.10-1.el5 qpid-java-common-0.10-1.el5 qpid-java-example-0.10-1.el5 qpid-cpp-server-0.10-1.el5 python-qpid-qmf-0.10-2.el5 qpid-cpp-client-ssl-0.10-1.el5 qpid-qmf-devel-0.10-2.el5 qpid-cpp-server-store-0.10-1.el5 qpid-cpp-server-cluster-0.10-1.el5 qpid-java-client-0.10-1.el5 qpid-cpp-client-0.10-1.el5 qpid-cpp-client-devel-0.10-1.el5 qpid-tools-0.10-1.el5 qpid-cpp-server-ssl-0.10-1.el5 -> VERIFIED
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHEA-2011-0890.html