Bug 929169 - Closing a topic consumer should delete its exclusive auto-delete queue
Summary: Closing a topic consumer should delete its exclusive auto-delete queue
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-java
Version: 2.3
Hardware: All
OS: All
Target Milestone: 3.1
: ---
Assignee: Rajith Attapattu
QA Contact: Michal Toth
Depends On:
TreeView+ depends on / blocked
Reported: 2013-03-29 11:28 UTC by Pavel Moravec
Modified: 2019-06-13 07:53 UTC (History)
3 users (show)

Fixed In Version: qpid-java-0.30-2
Doc Type: Bug Fix
Doc Text:
The expected behavior of a topic consumer is to persist the subscription queue when the topic consumer is closed. The subscription queue is deleted automatically when the session is closed due to being marked auto-delete. It was discovered that the subscription queue remained on the broker, even after the subscription queue was closed. The fix now ensures the subscription queue is deleted when the consumer is closed, with the exception of JMS durable subscriptions.
Clone Of:
Last Closed: 2015-04-14 13:46:31 UTC
Target Upstream Version:

Attachments (Terms of Use)
Reproducer (1.63 KB, text/x-java)
2013-03-29 11:28 UTC, Pavel Moravec
no flags Details

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2015:0805 normal SHIPPED_LIVE Red Hat Enterprise MRG Messaging 3.1 Release 2015-04-14 17:45:54 UTC

Description Pavel Moravec 2013-03-29 11:28:11 UTC
Created attachment 718037 [details]

Description of problem:
Having a topic consumer, closing it should delete its auxiliary auto-delete exclusive queue. Currently Java client does so even when the session is closed, while the session can be used to subsequent producer traffic, e.g.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. java test_00808098 "amq.topic/key3; { node:{ type:topic}, link:{x-bindings:[{ exchange:'amq.topic', key:'key1'}, { exchange:'amq.topic', key:'key2' }]}}"
Consumer created, press enter to continue
(in another terminal, run "qpid-config queues -r" to see the aux.queue named like TempQueuef6f5a3f6-6498-49c2-ac98-92ae73bff2b4)

Consumer closed, press enter to continue
(in the second terminal, run "qpid-config queues -r" again and check if the queue exists or not)

Session closed, press enter to continue
(in the second terminal, run "qpid-config queues -r" again and check if the queue exists or not)

Connection closed, press enter to continue

Actual results:
The first check after consumer closed shows the queue present. The queue is deleted even after session is closed (i.e. second check).

Expected results:
Even the first check shows the queue already gone.

Additional info:
This would align JMS client behavior with C++ and Python client behavior.

Also it would prevent another bug - see that after consumer is closed, binding amq.topic -> key3 -. aux.queue also exists (key3 is the routing key from the address string).

Comment 1 Rajith Attapattu 2014-07-02 23:05:39 UTC

Attached a patch to the JIRA and will commit shortly.

Comment 2 Justin Ross 2014-07-22 15:46:37 UTC

Comment 4 Michal Toth 2015-01-15 16:22:33 UTC

Comment 5 Michal Toth 2015-01-15 16:25:44 UTC
Tested on 

Comment 10 errata-xmlrpc 2015-04-14 13:46:31 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.