Bug 1270729

Summary: Qpid java client timeouts/hangs when sender waits to removal of queue, which is in exclusive use of subscriber
Product: Red Hat Enterprise MRG Reporter: Michal Toth <mtoth>
Component: qpid-javaAssignee: messaging-bugs <messaging-bugs>
Status: CLOSED UPSTREAM QA Contact: Messaging QE <messaging-qe-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.2CC: jross
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:48:18 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:

Description Michal Toth 2015-10-12 09:25:26 UTC
Description of problem:
Qpid java amqp 1.0 sender client with declared address property "delete:always" hangs (or timeouts) when sends a message to the exclusive queue declared by client subscribed to it.

Version-Release number of selected component (if applicable):
qpid-java-common-0.30-7.el6.noarch
qpid-java-client-0.30-7.el6.noarch

How reproducible:
Always

Steps to Reproduce:
1. Subscribe to the exclusive queue
org.apache.qpid.example.qc2_drain --timeout 20 --log-msgs dict --broker guest/guest@brokerIP:5672 --connection-options "{ sasl_mechanisms : 'PLAIN', protocol : 'amqp0-10' }" --duration 20 "exclusive_q;{'node': {'x-declare': {'exclusive': True}}, 'create': 'always'}"

2. Send a message to this queue and delete it with this client (deletion should fail with an "exclusive queue in use" error).
org.apache.qpid.example.qc2_spout --log-msgs dict --broker guest/guest@brokerIP:5672 --connection-options "{ sasl_mechanisms : 'PLAIN', protocol : 'amqp0-10' }" --count 1 "test_node_x_declare_map_exclusive_property-exclusive_q;{'delete': 'always'}"


Actual results:
[ clients]$ java -cp "/usr/share/java/qpid-deps/geronimo-jms_1.1_spec-1.1.1.redhat-1.jar:/usr/share/java/qpid-deps/slf4j-api-1.6.4.redhat-1.jar:/usr/share/java/qpid-deps/slf4j-log4j12-1.6.4.redhat-1.jar:/usr/share/java/log4j.jar:/usr/share/java/qpid-common-0.30.0.redhat-1.jar:/usr/share/java/qpid-client-0.30.0.redhat-1.jar:/var/dtests/node_data/clients:/var/dtests/node_data/clients/java/qpid:/var/dtests/node_data/reproducers" -Dlog4j.configuration=log4j.properties org.apache.qpid.example.qc2_spout --log-msgs dict --broker guest/guest@brokerIP:5672 --connection-options "{sasl_mechanisms : 'PLAIN'}" --count 1 "exclusive_q;{'delete': 'always'}"
{'redelivered': False, 'subject': None, 'id': None, 'correlation_id': None, 'priority': 4, 'durable': True, 'destination': 'test_node_x_declare_map_exclusive_property-exclusive_q', 'type': None, 'expiration': 0, 'timestamp': 1444640560188, 'properties': {'spout_id': '70f51c0f-c7aa-40f6-b8b9-c627702f1ebe:0'}, 'content': None}
main 2015-10-12 11:03:40,201 ERROR [apache.qpid.example.MessagingExceptionListener] Error!
javax.jms.JMSException: Exception thrown against AMQConnection:
Host: brokerIP
Port: 5672
Virtual Host: test
Client ID: test
Active session count: 1: org.apache.qpid.AMQException: timed out waiting for sync: complete = 3, point = 5 [error code 541: internal error]
	at org.apache.qpid.client.AMQConnection.exceptionReceived(AMQConnection.java:1297)
	at org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1097)
	at org.apache.qpid.client.AMQSession_0_10.sendClose(AMQSession_0_10.java:440)
	at org.apache.qpid.client.AMQSession.close(AMQSession.java:842)
	at org.apache.qpid.client.AMQSession.close(AMQSession.java:810)
	at org.apache.qpid.client.AMQSession.close(AMQSession.java:540)
	at org.apache.qpid.example.SpoutClient.<init>(SpoutClient.java:326)
	at org.apache.qpid.example.qc2_spout.<init>(qc2_spout.java:26)
	at org.apache.qpid.example.qc2_spout.main(qc2_spout.java:42)
Caused by: org.apache.qpid.AMQException: timed out waiting for sync: complete = 3, point = 5 [error code 541: internal error]
	at org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1081)
	... 7 more


Expected results:
Client should report an "unable to delete exclusive queue in use" error.

Additional info:
Python client:
 python]$ ./qc2_spout.py --log-msgs dict --broker guest/guest@brokerIP:5672 --connection-options "{ sasl_mechanisms : 'PLAIN', protocol : 'amqp0-10' }" --count 1 "test_node_x_declare_map_exclusive_property-exclusive_q;{'delete': 'always'}"
...
resource-locked: Cannot delete queue exclusive_q; it is exclusive to another session (/builddir/build/BUILD/qpid-cpp-0.34/src/qpid/broker/SessionAdapter.cpp:335)(405)

Cpp client
clients]$ ./qc2_spout --log-msgs dict --broker guest/guest@brokerIP:5672 --connection-options "{ sasl_mechanisms : 'PLAIN', protocol : 'amqp0-10' }" --count 1 "test_node_x_declare_map_exclusive_property-exclusive_q;{'delete': 'always'}"
...
2015-10-12 11:00:23 [Client] warning Exception received from broker: resource-locked: Cannot delete queue test_node_x_declare_map_exclusive_property-exclusive_q; it is exclusive to another session (/builddir/build/BUILD/qpid-cpp-0.34/src/qpid/broker/SessionAdapter.cpp:335) [caused by 6 \x08:\x02]
resource-locked: Cannot delete queue exclusive_q; it is exclusive to another session (/builddir/build/BUILD/qpid-cpp-0.34/src/qpid/broker/SessionAdapter.cpp:335)

Comment 1 Red Hat Bugzilla 2025-02-10 03:48:18 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.