Bug 724833

Summary: Abort during clustered broker shutdown
Product: Red Hat Enterprise MRG Reporter: Jason Dillaman <jdillama>
Component: qpid-cppAssignee: mick <mgoulish>
Status: NEW --- QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: high Docs Contact:
Priority: medium    
Version: 1.3CC: iboverma, 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: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 698367, 803771    
Attachments:
Description Flags
reproducer
none
stack backtrace none

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