Bug 1040614

Summary: auto-delete property on exchange is ignored/invalid
Product: Red Hat Enterprise MRG Reporter: Zdenek Kraus <zkraus>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED CURRENTRELEASE QA Contact: Zdenek Kraus <zkraus>
Severity: low Docs Contact:
Priority: unspecified    
Version: 3.0CC: esammons, gsim, iboverma, jross
Target Milestone: 3.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-cpp-0.22-30 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-21 12:52:29 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:

Description Zdenek Kraus 2013-12-11 17:20:53 UTC
Description of problem:
exchange's property 'auto-delete' is ignored or invalid.

QMF shows the 'autoDelete' property as False all the time, 
and delete action when last receiver unsubscribe is invalid, since the receiver makes the subscription queue and the unsubscribe is applied on that queue and not relayed to the exchange.

Thus the auto-delete property is invalid for exchange
-or-
property should possible to set and last subscription has to be relayed to exchange to make it work.

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

How reproducible:
100%

Steps to Reproduce:
1. create a auto-delete exchange with sender
./spout "ex;{create:always, node:{type:topic,'x-declare':{'auto-delete':True}}}"
2. check QMF
./qmf2_list_objects --query-data exchange/ex | ipython
3. subscribe to the exchange, and let unsubscribe
./drain "ex"

Actual results:
{'_create_ts': 1386781433415679174,
 '_delete_ts': 0,
 '_object_id': {'_agent_epoch': 699,
                '_object_name': 'org.apache.qpid.broker:exchange:ex'},
 '_schema_id': {'_class_name': 'exchange',
                '_hash': 'c9bb43df-44ac-63d5-cc1c-6a032025c97d',
                '_package_name': 'org.apache.qpid.broker',
                '_type': '_data'},
 '_update_ts': 1386781455003296482,
 'arguments': {},
 'autoDelete': False,
 'bindingCount': 0,
 'bindingCountHigh': 0,
 'bindingCountLow': 0,
 'byteDrops': 91,
 'byteReceives': 91,
 'byteRoutes': 0,
 'durable': False,
 'msgDrops': 1,
 'msgReceives': 1,
 'msgRoutes': 0,
 'name': 'ex',
 'producerCount': 0,
 'producerCountHigh': 0,
 'producerCountLow': 0,
 'type': 'topic',
 'vhostRef': {'_object_name': 'org.apache.qpid.broker:vhost:org.apache.qpid.broker:broker:amqp-broker,/'}}

exchange has property 'autoDelete': False and it's not deleted after last receiver

Expected results:
auto-delete should work with exchanges same as with queue
- OR - 
the property should be removed from QMF

Additional info:
Please move the bug on qpid-qmf based on final resolution

Comment 2 Gordon Sim 2013-12-11 18:13:33 UTC
Fixed upstream: https://svn.apache.org/r1541058

Comment 5 Zdenek Kraus 2014-01-07 13:20:14 UTC
This was tested on RHEL 6.5 i686, x86_64 with following packages:

qpid-cpp-server-0.22-30.el6
qpid-cpp-server-xml-0.22-30.el6
qpid-proton-debuginfo-0.6-1.el6
qpid-cpp-debuginfo-0.22-30.el6
qpid-jca-0.22-1.el6
qpid-jca-xarecovery-0.22-1.el6
qpid-qmf-devel-0.22-25.el6
qpid-tools-0.22-7.el6
qpid-proton-c-0.6-1.el6
qpid-qmf-0.22-25.el6
python-qpid-qmf-0.22-25.el6
qpid-proton-c-devel-0.6-1.el6
qpid-java-example-0.22-5.el6
python-qpid-0.22-9.el6
qpid-cpp-client-0.22-30.el6
qpid-cpp-client-ssl-0.22-30.el6
qpid-cpp-server-devel-0.22-30.el6
qpid-java-client-0.22-5.el6
qpid-cpp-server-ssl-0.22-30.el6
qpid-java-common-0.22-5.el6
qpid-cpp-client-devel-0.22-30.el6
qpid-cpp-server-store-0.22-30.el6
qpid-cpp-client-devel-docs-0.22-30.el6

fix work as expected.