Description of problem: If Session_0_10::run() is running and sends an ack concurrently with a user thread sending an AMQP command, the threads can deadlock. How reproducible: easy Steps to Reproduce: Write a test using default ack policy Run the dispatcher via session.start() Subscribe a listener to some queue. Send messages to the same queue in a loop. Actual results: Deadlock.
Attempted to reproduce with SubscriptionManager in src/tests/ClientSessionTest.cpp testSendToSelf, no deadlock. Unless the bug can be reproduced with another test, this should be closed.
Altered (and disabled) testSendToSelf such that sending and acking does actually occur concurrently. Bug can be reproduced.
Re-enabled testSendToSelf. This runs successfully with the original 10,000 msg count both under valgrind and standalone. However under valgrind that number of messages takes a *very* long time so I have cut the count back to 1000 for now. This particular deadlock cannot exist anymore as the ExecutionHandler and SessionCore have been merged.
qpidc-0.2.656926-1.el5 and qpidd-0.2.656926-1.el5 have been pushed to the staging repo for testing