Bug 967734

Summary: Link reliability is not properly applied when using amqp1.0 protocol
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: high    
Version: DevelopmentCC: esammons, gsim, iboverma, jross, pematous
Target Milestone: 3.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-cpp-0.22-12 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 963243 Environment:
Last Closed: 2015-01-21 12:55:40 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-05-28 08:04:22 UTC
+++ This bug was initially created as a clone of Bug #963243 +++

Description of problem:

I believe that link properties are ignored at all when using amqp1.0 protocol,
because the subscription queue created with the following command is
neither named nor durable. Also the reliability flag is probably not reflected.

# ./drain -f --connection-options "{protocol:amqp1.0}" "amq.direct/subject;{link:{name:testq1.0,durable:true,reliability:at-least-once}}" &
# qpid-config queues
Queue Name                                      Attributes
======================================================================
amq.directfea8b6ff-68df-4775-a2a1-23e7d0c131e3  auto-del 
ffde62c0-8452-4c6b-9afd-9636fe123438:0.0        auto-del excl 

using 0-10, the subscription queue is properly named, durable and not auto-del:
# ./drain -f "amq.direct/subject;{link:{name:testq0-10,durable:true,reliability:at-least-once}}" &
# qpid-config queues
Queue Name                                      Attributes
======================================================================
amq.directfea8b6ff-68df-4775-a2a1-23e7d0c131e3  auto-del 
testq0-10                                        --durable excl 

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

How reproducible:
100%

Steps to Reproduce:
1. ./drain -f --connection-options "{protocol:amqp1.0}" "amq.direct/subject;{link:{name:testq1.0,durable:true,reliability:at-least-once}}" &
2. list the queues using qpid-config
3. the queue is named dynamically, is not durable, is auto-del (BUT shall be named accordingly, durable and not auto-del)

Actual results:
Link properties are not applied properly

Expected results:
Link properties are applied properly

Additional info:

--- Additional comment from Petr Matousek on 2013-05-15 09:21:10 EDT ---

The durability property of the link should be fixed by https://issues.apache.org/jira/browse/QPID-4716.

--- Additional comment from Gordon Sim on 2013-05-24 12:55:46 EDT ---

The naming and durability are addressed by http://svn.apache.org/viewvc?view=revision&revision=1486115, and the auto-delete is now false for durable queues as is the default for 0-10.

Note that the link name is combined with the container id to form the subscription queue name as that is guaranteed to be unique whereas the link name on its own is not.

Still outstanding is control over the reliability.

--- Additional comment from Gordon Sim on 2013-05-27 12:20:55 EDT ---

I propose creating a separate BZ to track the control over link reliability, leaving this issue to track the control offered through name and durable options. The reason for this are: (a) signalling the reliability requires a proton change so will take longer to get fixed and (b) the inability set unreliable mode is arguably less severe than inability to name or control durability (reliability at present is always at-least-once).

Petr, what do you think? Would that make sense or would it be better to just leave this as is, covering all aspects?

Comment 1 Petr Matousek 2013-05-28 08:05:24 UTC
The naming and durability are tracked as bug 963243. This bugzilla tracks the control over the reliability. 

As mentioned above, it is not possible to set the unreliable mode, the reliability at present is always set to at-least-once.

Comment 2 Gordon Sim 2013-08-28 12:51:10 UTC
Fixed upstream by https://svn.apache.org/r1518182 (merging fixes for https://bugzilla.redhat.com/show_bug.cgi?id=981636 first will make merging this one easier).

Comment 3 Gordon Sim 2013-08-28 14:22:51 UTC
Should also point out that these require proton 0.5

Comment 7 Petr Matousek 2013-10-29 09:18:19 UTC
This issue has been fixed. Verified on rhel6.4 (i386, x86_64).

packages used for testing:
qpid-cpp-*-0.22-23.el6

-> VERIFIED