Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 550151 - If an XML exchange is declared durable, the broker crashes on recovery
If an XML exchange is declared durable, the broker crashes on recovery
Status: CLOSED ERRATA
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
1.2
All Linux
high Severity high
: 1.2.2
: ---
Assigned To: Kim van der Riet
Jeff Needle
:
Depends On: 501749
Blocks:
  Show dependency treegraph
 
Reported: 2009-12-23 13:59 EST by Mike Cressman
Modified: 2018-10-27 08:52 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
C: create a new durable exchange of a type supplied by a plugin (such as xml), then stop and restart the broker C: the broker will terminate after throwing an instance of 'qpid::broker::UnknownExchangeTypeException' F: reorder the startup sequence so that the plugin modules are loaded before the store is recovered R: the new exchange is now recognized and recovered successfully and the broker starts up
Story Points: ---
Clone Of: 501749
Environment:
Last Closed: 2010-10-07 21:50:14 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2010:0756 normal SHIPPED_LIVE Moderate: Red Hat Enterprise MRG Messaging security and bug fix update 1.2.2 2010-10-07 21:49:47 EDT

  None (edit)
Description Mike Cressman 2009-12-23 13:59:41 EST
+++ This bug was initially created as a clone of Bug #501749 +++

Description of problem:

If an exchange is declared as durable, the broker will fail on subsequent recovery.  This is true of any exchange type supplied by a plug-in.

Version-Release number of selected component (if applicable):

1.1.1

How reproducible:

100%

Steps to Reproduce:
1. Start a broker with the store and xml modules loaded.
2. execute the command "qpid-config add exchange xml myxml"
3. restart the broker
  
Actual results:

The broker will fail with: terminate called after throwing an instance of 'qpid::broker::UnknownExchangeTypeException'

Expected results:

Success, and recovery of the "myxml" exchange.

Additional info:

--- Additional comment from tross@redhat.com on 2009-05-20 11:25:53 EDT ---

This is caused by the fact that the broker recovers the store before it loads plug-in modules.  At the time the xml exchange is recovered, the type is as yet unknown.

--- Additional comment from tross@redhat.com on 2009-05-20 11:28:54 EDT ---

Sorry,  here are the correct steps to reproduce:

Steps to Reproduce:
1. Start a broker with the store and xml modules loaded.
2. execute the command "qpid-config add exchange xml myxml --durable"
3. restart the broker

--- Additional comment from gsim@redhat.com on 2009-05-21 08:45:51 EDT ---

Added handling for this case as r777096 on qpid trunk and r3390 on store.
Moved registration for the xml- and replication- exchanges to earlyInitialise() to allow instances of these types to be recovered (r777073).

--- Additional comment from iboverma@redhat.com on 2009-10-06 12:17:15 EDT ---

Move to 1.3.
Comment 1 Mike Cressman 2009-12-23 14:12:44 EST
Target for first MRG-M 1.2 errata (internal release 1.2.2)
Comment 2 Kim van der Riet 2010-01-05 13:10:09 EST
The store r.3390 made it to the 1.2 branch, however r.777096 did not. Those changes in r.777096 which change the order of the loading of XmlExchange and ReplicationExchange from initialize() to earlyInitialize() have been backported to the 1.2 branch in the MRG git repo.
Comment 4 Mike Cressman 2010-09-24 11:51:33 EDT
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
C: create a new durable exchange of a type supplied by a plugin (such as xml), then stop and restart the broker
C: the broker will terminate after throwing an instance of 'qpid::broker::UnknownExchangeTypeException'
F: reorder the startup sequence so that the plugin modules are loaded before the store is recovered
R: the new exchange is now recognized and recovered successfully and the broker starts up
Comment 5 errata-xmlrpc 2010-10-07 21:50:14 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0756.html

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