Description of problem: When the durable node with auto-delete: true exists, the property is reset to false after broker restarts, with linearstore. Version-Release number of selected component (if applicable): qpid-cpp-server-linearstore-0.22-30.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. create durable node (queue) with auto-delete property set ./spout "autodelq;{'create':'always', 'node': {'x-declare': {'auto-delete': True}}}" 2. create durable node (exchange) with auto-delete property set ./spout "autodelex;{'create':'always', 'node': {'type': topic, 'x-declare': {'auto-delete': True}, 'durable':True}}" 3. check auto-delete qpid-stat -q #for queue # or qmf2_list_objects --query-data queue/autodelq | ipython qmf2_list_objects --query-data exchange/autodelex | ipython 4. restart broker 5. check auto-delete Actual results: [3] $ qpid-stat -q Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ============================================================================================================================================ 00bf8b02-ca89-476b-bec6-ed6fa4b2034e:0.0 Y Y 0 0 0 0 0 0 1 2 autodelq Y 1 1 0 97 97 0 0 1 $ qmf2_list_objects --query-data queue/autodelq | ipython {'_create_ts': 1389181379536877552, '_delete_ts': 0, '_object_id': {'_object_name': 'org.apache.qpid.broker:queue:autodelq'}, '_schema_id': {'_class_name': 'queue', '_hash': 'aee19387-3611-855a-c8ff-d2f106e5b5f4', '_package_name': 'org.apache.qpid.broker', '_type': '_data'}, '_update_ts': 1389181380906385452, 'acquires': 0, 'arguments': {}, 'autoDelete': True, 'bindingCount': 1, 'bindingCountHigh': 1, 'bindingCountLow': 1, 'byteDepth': 0, 'byteFtdDepth': 0, 'byteFtdDequeues': 0, 'byteFtdEnqueues': 0, 'bytePersistDequeues': 0, 'bytePersistEnqueues': 0, 'byteTotalDequeues': 0, 'byteTotalEnqueues': 0, 'byteTxnDequeues': 0, 'byteTxnEnqueues': 0, 'consumerCount': 0, 'consumerCountHigh': 0, 'consumerCountLow': 0, 'discardsLvq': 0, 'discardsOverflow': 0, 'discardsPurge': 0, 'discardsRing': 0, 'discardsSubscriber': 0, 'discardsTtl': 0, 'durable': True, 'exclusive': False, 'flowStopped': False, 'flowStoppedCount': 0, 'messageLatencyAvg': 0, 'messageLatencyCount': 0, 'messageLatencyMax': 0, 'messageLatencyMin': 0, 'msgDepth': 0, 'msgFtdDepth': 0, 'msgFtdDequeues': 0, 'msgFtdEnqueues': 0, 'msgPersistDequeues': 0, 'msgPersistEnqueues': 0, 'msgTotalDequeues': 0, 'msgTotalEnqueues': 0, 'msgTxnDequeues': 0, 'msgTxnEnqueues': 0, 'name': 'autodelq', 'redirectPeer': None, 'redirectSource': False, 'releases': 0, 'reroutes': 0, 'unackedMessages': 0, 'unackedMessagesHigh': 0, 'unackedMessagesLow': 0, 'vhostRef': {'_object_name': 'org.apache.qpid.broker:vhost:org.apache.qpid.broker:broker:amqp-broker,/'}} $ qmf2_list_objects --query-data exchange/autodelex | ipython {'_create_ts': 1389181379537815896, '_delete_ts': 0, '_object_id': {'_object_name': 'org.apache.qpid.broker:exchange:autodelex'}, '_schema_id': {'_class_name': 'exchange', '_hash': 'c9bb43df-44ac-63d5-cc1c-6a032025c97d', '_package_name': 'org.apache.qpid.broker', '_type': '_data'}, '_update_ts': 1389181380907750214, 'arguments': {}, 'autoDelete': True, 'bindingCount': 0, 'bindingCountHigh': 0, 'bindingCountLow': 0, 'byteDrops': 0, 'byteReceives': 0, 'byteRoutes': 0, 'durable': True, 'msgDrops': 0, 'msgReceives': 0, 'msgRoutes': 0, 'name': 'autodelex', 'producerCount': 0, 'producerCountHigh': 0, 'producerCountLow': 0, 'type': 'topic', 'vhostRef': {'_object_name': 'org.apache.qpid.broker:vhost:org.apache.qpid.broker:broker:amqp-broker,/'}} [5] 'autoDelete': False is on both nodes Expected results: autoDelete property should survive the restart Additional info:
Just a note for testers: there is a typo in 1st step, it lacks durable:true option :) Steps to Reproduce: 1. create durable node (queue) with auto-delete property set ./spout "autodelq;{'create':'always', 'node': {'durable':'True', 'x-declare': {'auto-delete': True}}}"
Upstream JIRA with patch proposal sent to review: https://reviews.apache.org/r/22812/
Committed revision 1604455.
This was tested on RHEL 6.6 i686 and x86_64 with following packages: python-qpid-0.30-2 qpid-cpp-client-0.30-4 qpid-cpp-client-devel-0.30-4 qpid-cpp-client-rdma-0.30-4 qpid-cpp-debuginfo-0.30-4 qpid-cpp-server-0.30-4 qpid-cpp-server-devel-0.30-4 qpid-cpp-server-ha-0.30-4 qpid-cpp-server-linearstore-0.30-4 qpid-cpp-server-rdma-0.30-4 qpid-cpp-server-xml-0.30-4 qpid-java-client-0.30-3 qpid-java-common-0.30-3 qpid-java-example-0.30-3 qpid-jca-0.22-2 qpid-jca-xarecovery-0.22-2 qpid-proton-c-0.7-4 Fix works as expected. ->VERIFIED
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2015-0805.html