summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/ha
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2012-08-07 15:50:58 +0000
committerAlan Conway <aconway@apache.org>2012-08-07 15:50:58 +0000
commitfe0dc0be930dcd341746f90dddf13e9595bc324a (patch)
treedd92361be03735a8abb21ebc0738e47b8f1bf691 /cpp/src/qpid/ha
parent00b41dc1991b61a10c20d1d83c1b5d910e735ba9 (diff)
downloadqpid-python-fe0dc0be930dcd341746f90dddf13e9595bc324a.tar.gz
NO-JIRA: HA only expect READY backups in recovery.
Don't wait for un-ready backups to become ready in recover, they weren't ready before the failure so don't wait for them to become ready after a failure. Waiting for READY backups gives us equivalent safety to before the failure. Minor test & log improvements. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1370325 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/ha')
-rw-r--r--cpp/src/qpid/ha/Membership.cpp2
-rw-r--r--cpp/src/qpid/ha/Membership.h2
-rw-r--r--cpp/src/qpid/ha/Primary.cpp2
3 files changed, 3 insertions, 3 deletions
diff --git a/cpp/src/qpid/ha/Membership.cpp b/cpp/src/qpid/ha/Membership.cpp
index cc2906dd8f..74580f9b1e 100644
--- a/cpp/src/qpid/ha/Membership.cpp
+++ b/cpp/src/qpid/ha/Membership.cpp
@@ -66,7 +66,7 @@ types::Variant::List Membership::asList() const {
BrokerInfo::Set Membership::otherBackups() const {
BrokerInfo::Set result;
for (BrokerInfo::Map::const_iterator i = brokers.begin(); i != brokers.end(); ++i)
- if (isBackup(i->second.getStatus()) && i->second.getSystemId() != self)
+ if (i->second.getStatus() == READY && i->second.getSystemId() != self)
result.insert(i->second);
return result;
}
diff --git a/cpp/src/qpid/ha/Membership.h b/cpp/src/qpid/ha/Membership.h
index 3bd8653a64..8406dccd5d 100644
--- a/cpp/src/qpid/ha/Membership.h
+++ b/cpp/src/qpid/ha/Membership.h
@@ -47,7 +47,7 @@ class Membership
void add(const BrokerInfo& b);
void remove(const types::Uuid& id);
bool contains(const types::Uuid& id);
- /** Return IDs of all backups other than self */
+ /** Return IDs of all READY backups other than self */
BrokerInfo::Set otherBackups() const;
void assign(const types::Variant::List&);
diff --git a/cpp/src/qpid/ha/Primary.cpp b/cpp/src/qpid/ha/Primary.cpp
index 45a0e246f3..4462d91062 100644
--- a/cpp/src/qpid/ha/Primary.cpp
+++ b/cpp/src/qpid/ha/Primary.cpp
@@ -201,6 +201,7 @@ void Primary::opened(broker::Connection& connection) {
Mutex::ScopedLock l(lock);
BackupMap::iterator i = backups.find(info.getSystemId());
if (i == backups.end()) {
+ QPID_LOG(debug, logPrefix << "New backup connected: " << info);
boost::shared_ptr<RemoteBackup> backup(
new RemoteBackup(info, haBroker.getReplicationTest(), true));
{
@@ -209,7 +210,6 @@ void Primary::opened(broker::Connection& connection) {
backup->setInitialQueues(haBroker.getBroker().getQueues(), false);
}
backups[info.getSystemId()] = backup;
- QPID_LOG(debug, logPrefix << "New backup connected: " << info);
}
else {
QPID_LOG(debug, logPrefix << "Known backup connected: " << info);