Bug 505231 - If broker disconnects client for heartbeat timeout, client can crash if it then heartbeat timeouts broker
If broker disconnects client for heartbeat timeout, client can crash if it th...
Status: NEW
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
1.1.1
All Linux
medium Severity medium
: ---
: ---
Assigned To: messaging-bugs
MRG Quality Engineering
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-11 02:00 EDT by Andrew Stitcher
Modified: 2011-08-12 12:16 EDT (History)
0 users

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


Attachments (Terms of Use)
combined changes that should fix most of the issues that cause this behaviour (3.10 KB, patch)
2009-06-22 22:38 EDT, Andrew Stitcher
no flags Details | Diff
Corrected patch (not reverse patch) (3.10 KB, patch)
2009-06-22 22:40 EDT, Andrew Stitcher
no flags Details | Diff

  None (edit)
Description Andrew Stitcher 2009-06-11 02:00:30 EDT
Description of problem:

When running reproducer for BZ504590.

You occasionally get crashes from the perftest client like:
lt-perftest: ../../../qpid-working/cpp/src/qpid/sys/DispatchHandle.cpp:337: void qpid::sys::DispatchHandle::call(boost::function1<void, qpid::sys::DispatchHandle&, std::allocator<boost::function_base> >): Assertion `poller' failed.

How reproducible:

Less than 1 in 20 loops of the test

Steps to Reproduce:
(may be reproduceable without a cluster)

Run clustered brokers:
qpidd --auth no --cluster-name ams --port 21022 --no-data-dir
qpidd --auth no --cluster-name ams --port 21023 --no-data-dir
qpidd --auth no --cluster-name ams --port 21024 --no-data-dir

Run perftest in a loop:
while true; do src/tests/perftest --port 21022 --heartbeat 1 & sleep 2 ; kill
-STOP %% ; sleep 4 ; kill -CONT %%; done
Comment 1 Andrew Stitcher 2009-06-11 02:06:34 EDT
I'm pretty sure what's going on here is just after the perftest process is getting the continue signal after the broker has disconnected it.

Sometimes the clients own heartbeat failure code will be triggered just after the client has just destroyed enough of the connection state to make triggering the heartbeat fail.
Comment 2 Andrew Stitcher 2009-06-11 10:50:01 EDT
This issue does not occur in the qpid trunk (code leading to 1.2)
Comment 3 Andrew Stitcher 2009-06-22 22:38:37 EDT
Created attachment 349027 [details]
combined changes that should fix most of the issues that cause this behaviour
Comment 4 Andrew Stitcher 2009-06-22 22:40:49 EDT
Created attachment 349028 [details]
Corrected patch (not reverse patch)
Comment 5 Andrew Stitcher 2009-06-22 22:41:32 EDT
This patch applied to 758581-19

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