Description of problem: When re-routing to alternate-exchange and the alternate-exchange doesn't exist the messages are purged from that queue. There should be rather an error. Version-Release number of selected component (if applicable): qpid-cpp-mrg-0.14-3.el5 qpid-qmf-0.14-2.el5 qpid-cpp-0.14-1.el6 qpid-qmf-0.14-3.el6 How reproducible: 100% Steps to Reproduce: 1. qpid-tool: call <queue-id> reroute <msg_count> 1 <exchange-name> <filter> 2. msg_count messages are dequeued, but they are not routed anywhere (they are purged) Actual results: re-routing messages to alternate-exchange on queue with no alternate exchange defined leads to purge of that messages Expected results: re-routing messages to alternate-exchange on queue with no alternate exchange defined leads to an error
There are two issues here. The problem as reported - i.e. the lack of checking when the useAltExchange flag is set - is fixed upstream by http://svn.apache.org/viewvc?view=rev&rev=1329438. There is also a problem with uninitialised arguments - related to this where qmfv2 messages are constructed and sent directly - that is fixed upstream by http://svn.apache.org/viewvc?view=rev&rev=1329817. This one may warrant its own BZ; it has its own JIRA upstream.
Tested on RHEL5.8 and RHEL6.3 (both i386 and x86_64). An attempt to reroute messages from a queue without alternate exchange to an alternate exchange results in error now. Also, in case that useAltExchange is not set for reroute command, it is defaults to 'false' and the messages get rerouted to the provided exchange instead of the alternate one. -> VERIFIED
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-2013-0561.html