Bug 1051555

Summary: [AMQP 1.0] No way to delete subscription queue created from topic on reliable link
Product: Red Hat Enterprise MRG Reporter: Pavel Moravec <pmoravec>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED CURRENTRELEASE QA Contact: Eric Sammons <esammons>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: esammons, gsim, iboverma, jross, mtoth
Target Milestone: 3.0   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: qpid-cpp-0.22-47 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-21 12:56:45 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 Pavel Moravec 2014-01-10 14:58:25 UTC
Description of problem:
When using topic for creating a queue for a reliable subscription, AMQP 1.0 client has no capability to delete the queue once it does not require it. The only (default) option - queue being autodelete - is overwritten by link reliability:at-least-once and there is no way to change it.

Further, AMQP 1.0 client can't ad hoc delete a node/queue on the broker (such that a workaround in "delete:always" wont work).


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


How reproducible:
100%


Steps to Reproduce:
qpid-config add topic response --argument exchange=amq.direct --argument qpid.max_count=100 --argument qpid.policy_type=ring --argument qpid.auto_delete_timeout=10 --argument auto-delete=true
qpid-receive -a "response/RELIABLE_LIFETIME; { create: never, link: { timeout:10, reliability:'at-least-once', name: 'RELIABLE_LIFETIME', durable: false }, node: { properties: {'lifetime-policy':'delete-on-no-links' }, capabilities: ['shared'] } }" -f -m 1000 --connection-options="{protocol:amqp1.0}"


Actual results:
despite topic has auto-delete (and timeout) and despite subscriber has lifetime-policy set, the queue persists after consumer is gone. And there is no configuration / address string to change it.


Expected results:
Some config / address string to allow delete such queue on close / no link.


Additional info:
Per gsim, few options are possible:
- backport link option "timeout" to 0.22-mrg
- make shared subscriptions reliable by default (shared subscriptions seems to be the only one where both link reliability and auto-delete make sense to be set)

Comment 1 Gordon Sim 2014-01-10 23:20:57 UTC
Actually it appears a shared subscription *is* reliable by default, and if you don't explicitly set the reliability it will also be autodelete by default.

That said, I think the link should not be able to override a topic policy that specifies autodeletion (via a lifetime-policy value). That is now fixed upstream: https://svn.apache.org/r1557280

The link timeout option is already tracked by https://bugzilla.redhat.com/show_bug.cgi?id=985870.

Comment 7 Valiantsina Hubeika 2014-08-26 08:42:32 UTC
verified on
qpid-cpp-0.22-47