Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 679212

Summary: Messages following a queue's Alternate-Exchange do not follow the exchange's Alternate-Exchange
Product: Red Hat Enterprise MRG Reporter: Chris Pitman <christopher.pitman>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: Petr Matousek <pematous>
Severity: high Docs Contact:
Priority: unspecified    
Version: DevelopmentCC: freznice, gsim, jross, pematous
Target Milestone: 2.0   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qpid-cpp-0.9.1079953 Doc Type: Bug Fix
Doc Text:
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.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:43:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Test Script none

Description Chris Pitman 2011-02-21 22:15:00 UTC
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"

Comment 1 Chris Pitman 2011-02-21 22:15:35 UTC
Created attachment 480007 [details]
Test Script

Comment 2 Gordon Sim 2011-03-03 12:46:30 UTC
Fixed upstream in r1076604.

Comment 3 Gordon Sim 2011-03-07 12:35:20 UTC
    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.

Comment 4 Petr Matousek 2011-04-06 09:01:09 UTC
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

Comment 5 errata-xmlrpc 2011-06-23 15:43:19 UTC
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