Bug 1010393

Summary: [amqp1.0] amqp1.0 message is not routed to alternate exchange
Product: Red Hat Enterprise MRG Reporter: Petr Matousek <pematous>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED CURRENTRELEASE QA Contact: Petr Matousek <pematous>
Severity: medium Docs Contact:
Priority: medium    
Version: DevelopmentCC: esammons, gsim, iboverma, jross
Target Milestone: 3.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-cpp-0.22-17 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-21 12:56:21 UTC 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:
Bug Depends On:    
Bug Blocks: 1010399    

Description Petr Matousek 2013-09-20 16:58:46 UTC
Description of problem:

There is a subscriber on amq.direct. Another client creates an exchange with amq.direct as alternate exchange and sends a message towards it.
Since there is no binding/subscription on the defined exchange yet the message shall be routed to the alternate exchange.

Note: Using 0-10 publisher the message is delivered to the consumer on amq.direct

Please see additional info for more details.

Version-Release number of selected component (if applicable):
qpid-cpp-*-0.22-14

How reproducible:
100%

Steps to Reproduce:
1. ./drain -f --connection-options "{  protocol : 'amqp1.0' }" amq.direct
2. ./spout --connection-options "{protocol:'amqp1.0'}" "ex;{create:always,node:{type:topic,x-declare:{alternate-exchange:amq.direct}}}"
3. the message was not delivered to the consumer on amq.direct

Actual results:
Message is not delivered to alternate exchange

Expected results:
Message is delivered to alternate exchange

Additional info:

Following cases works well:

1. using amqp1.0:

Declaring the exchange using one client: 
./drain  --connection-options "{protocol:'amqp1.0'}" "ex;{create:always,node:{type:topic, x-declare:{alternate-exchange:amq.direct}}}"

Sending the message using another client (using other connection):
./spout ex

2. Defining the exchange and sending the message using 0-10 client:
./spout "ex;{create:always,node:{type:topic,x-declare:{alternate-exchange:amq.direct}}}"

Comment 1 Gordon Sim 2013-09-20 19:35:26 UTC
Fixed upstream: https://svn.apache.org/r1525090

Comment 2 Petr Matousek 2014-01-17 17:26:29 UTC
This issue has been fixed. Verified on rhel6.5 (x86_64, i386).

packages under test:
qpid-cpp-*-0.22-33

-> VERIFIED