Bug 410551 - c++ client deadlock
c++ client deadlock
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
All Linux
urgent Severity high
: ---
: ---
Assigned To: Gordon Sim
Kim van der Riet
Depends On:
  Show dependency treegraph
Reported: 2007-12-04 11:20 EST by Alan Conway
Modified: 2012-12-07 12:45 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed:
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Alan Conway 2007-12-04 11:20:07 EST
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:
Comment 1 Alan Conway 2008-02-05 15:48:43 EST
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.
Comment 2 Gordon Sim 2008-02-11 08:12:18 EST
Altered (and disabled) testSendToSelf such that sending and acking does actually
occur concurrently. Bug can be reproduced.
Comment 3 Gordon Sim 2008-05-01 04:05:27 EDT
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.
Comment 4 Mike Bonnet 2008-05-16 11:07:58 EDT
qpidc-0.2.656926-1.el5 and qpidd-0.2.656926-1.el5 have been pushed to the staging repo for testing

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