| Summary: | Abort during clustered broker shutdown | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Jason Dillaman <jdillama> | ||||||
| Component: | qpid-cpp | Assignee: | mick <mgoulish> | ||||||
| Status: | NEW --- | QA Contact: | MRG Quality Engineering <mrgqe-bugs> | ||||||
| Severity: | high | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 1.3 | CC: | 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: |
|
||||||||
Created attachment 514591 [details]
stack backtrace
|
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.