Author: gsim
Date: Fri Jul 20 15:44:59 2012
New Revision: 1363852
URL: http://svn.apache.org/viewvc?rev=1363852&view=rev
Log:
QPID-4158: HA transition to CATCHUP status too early; merged from 1363520
Modified:
qpid/branches/0.18/qpid/ (props changed)
qpid/branches/0.18/qpid/cpp/src/ (props changed)
qpid/branches/0.18/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
Propchange: qpid/branches/0.18/qpid/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid:r1363520
Propchange: qpid/branches/0.18/qpid/cpp/src/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src:r1363520
Modified: qpid/branches/0.18/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
URL:
http://svn.apache.org/viewvc/qpid/branches/0.18/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp?rev=1363852&r1=1363851&r2=1363852&view=diff
==============================================================================
--- qpid/branches/0.18/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp (original)
+++ qpid/branches/0.18/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp Fri Jul 20
15:44:59 2012
@@ -218,22 +218,6 @@ void BrokerReplicator::initializeBridge(
<< " status:" << printable(haBroker.getStatus()));
initialized = true;
- switch (haBroker.getStatus()) {
- case JOINING:
- haBroker.setStatus(CATCHUP);
- break;
- case CATCHUP:
- break;
- case READY:
- break;
- case RECOVERING:
- case ACTIVE:
- assert(0); // Primary does not reconnect.
- return;
- case STANDALONE:
- return;
- }
-
framing::AMQP_ServerProxy peer(sessionHandler.out);
const qmf::org::apache::qpid::broker::ArgsLinkBridge&
args(bridge.getArgs());
@@ -260,6 +244,10 @@ void BrokerReplicator::initializeBridge(
}
void BrokerReplicator::route(Deliverable& msg) {
+ // We transition from JOINING->CATCHUP on the first message received from
the primary.
+ // Until now we couldn't be sure if we had a good connection to the
primary.
+ if (haBroker.getStatus() == JOINING) haBroker.setStatus(CATCHUP);
+
const framing::FieldTable* headers =
msg.getMessage().getApplicationHeaders();
Variant::List list;
try {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]