aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@verizonmedia.com>2021-03-19 15:38:38 +0100
committerTor Brede Vekterli <vekterli@verizonmedia.com>2021-03-19 16:50:19 +0100
commit229e5e8adc0c6b20ae5b39a67a60f29ab0b05d7c (patch)
tree1213b2388a510330d42c94e752c3c32e528cc13e /clustercontroller-core
parentfdec580a5591030bdd48416dd4b31f64fe3daca9 (diff)
Make sure to reset any election shortcuts if we go from !ZK -> ZK
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java
index eeddf2fab75..0dd26026c5d 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java
@@ -55,6 +55,10 @@ public class MasterElectionHandler implements MasterInterface {
}
public void setUsingZooKeeper(boolean usingZK) {
+ if (!usingZooKeeper && usingZK) {
+ // Reset any shortcuts taken by non-ZK election logic.
+ resetElectionProgress();
+ }
usingZooKeeper = usingZK;
}
@@ -224,15 +228,19 @@ public class MasterElectionHandler implements MasterInterface {
}
public void lostDatabaseConnection() {
- if (totalCount > 1) {
+ if (totalCount > 1 || usingZooKeeper) {
log.log(Level.INFO, "Cluster controller " + index + ": Clearing master data as we lost connection on node " + index);
- masterData = null;
- masterCandidate = null;
- followers = 0;
- nextMasterData = null;
+ resetElectionProgress();
}
}
+ private void resetElectionProgress() {
+ masterData = null;
+ masterCandidate = null;
+ followers = 0;
+ nextMasterData = null;
+ }
+
public void writeHtmlState(StringBuilder sb, int stateGatherCount) {
sb.append("<h2>Master state</h2>\n");
Integer master = getMaster();