Bug 724833 - Abort during clustered broker shutdown
Summary: Abort during clustered broker shutdown
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.3
Hardware: Unspecified
OS: Unspecified
medium
high
Target Milestone: ---
: ---
Assignee: mick
QA Contact: MRG Quality Engineering
URL:
Whiteboard:
Depends On:
Blocks: 698367 803771
TreeView+ depends on / blocked
 
Reported: 2011-07-21 23:08 UTC by Jason Dillaman
Modified: 2020-11-04 18:29 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:


Attachments (Terms of Use)
reproducer (1.10 KB, application/octet-stream)
2011-07-21 23:08 UTC, Jason Dillaman
no flags Details
stack backtrace (6.90 KB, text/plain)
2011-07-21 23:09 UTC, Jason Dillaman
no flags Details

Description Jason Dillaman 2011-07-21 23:08:47 UTC
Created attachment 514590 [details]
reproducer

Description of problem:
While shutting down a clustered broker, the shutdown is occasionally aborted due to an attempt to invoke a pure virtual method.

Version-Release number of selected component (if applicable):
qpid-cpp-server-0.7.946106-32_ptc_hotfix_6_v3.el5

How reproducible:
Frequently with the attached reproducer

Steps to Reproduce:
1. Start a single clustered broker
2. Send messages to a queue
3. Subscribe at least two receivers to the queue in different sessions
4. Shutdown the broker while the receivers are listeners on the queue
  
Actual results:
Broker aborts with the following error:
pure virtual method called
terminate called without an active exception

Expected results:
Broker shutdown cleanly

Additional info:
The clustered broker connection object does not get a chance to invoke the "qpid::broker::Connection::closed()" method prior to the connection going out of scope.  When the destructor for the first attached session fires, it removes itself as a listener on the queue.  However, the second attached session will receive a notify event.  Since the connection attached to the second session is partially destructed and the notification is not disabled, the session will attempt to activate the output on the destructed connection.

Comment 1 Jason Dillaman 2011-07-21 23:09:26 UTC
Created attachment 514591 [details]
stack backtrace


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