Red Hat Bugzilla – Bug 497544
servicing a catch-up request causes clustered broker to crash if replication exchange is defined
Last modified: 2009-06-12 13:39:04 EDT
Description of problem:
If a replication exchange is defined on a clustered broker, when a new node joins the cluster the node that tries to send it the necessary cluster state crashes.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. start clustered node with replication exchange plugin loaded
2. create a replication exchange using qpid-config
3. start a new node for the cluster
first node crashes
first node doesn't crash(!)
This is caused by a bug whereby the size of the encoded representation of the exchange state is changed during encode and consequently it overruns the buffer.
There is a workaround which is to ensure that when declaring the replication exchange you specify "qpid.replication-event.sequence"=0 in the arguments to the exchange. E.g. see attached patch which is used for step 2 works around the issue.
Created attachment 343498 [details]
Fixed on trunk as r773667, attached patch for r752581.
Fixed in qpidd-0.5.752581-8.el5
Tested on RHEL5.3 x86_64/i386 qpidd-0.5.752581-9.el5 and it works so --> VERIFIED.
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.