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]

Reply via email to