summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-06-02 10:48:57 +0200
committerHarald Musum <musum@yahooinc.com>2023-06-02 10:48:57 +0200
commit19dfcf47e91559ab0b29fe121e58a937aa3bcfb4 (patch)
treee0f77a7955ca5528503606d8c5aed946d00a26ef
parent8f51e5a0b30ae95ae563d985054c8fa0dc945b2d (diff)
Set nextInLineCount to 0 initially instead of checking fleetcontroller count
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java2
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MasterElectionHandler.java3
2 files changed, 3 insertions, 2 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
index d996253627f..8027cec4e3c 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
@@ -559,7 +559,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
if ( ! isRunning()) { return; }
- if (masterElectionHandler.isFirstInLine() || options.fleetControllerCount() == 1) {
+ if (masterElectionHandler.isFirstInLine()) {
didWork |= resyncLocallyCachedState(); // Calls to metricUpdate.forWork inside method
} else {
stepDownAsStateGatherer();
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 df95b4c8fe5..fc8a6a05573 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
@@ -33,7 +33,8 @@ public class MasterElectionHandler implements MasterInterface {
this.timer = timer;
this.index = index;
this.totalCount = totalCount;
- this.nextInLineCount = Integer.MAX_VALUE;
+ // nextInLineCount should/will always be 0 when we have one controller
+ this.nextInLineCount = totalCount == 1 ? 0 : Integer.MAX_VALUE;
if (cannotBecomeMaster())
context.log(logger, Level.FINE, () -> "We can never become master and will always stay a follower.");
// Tag current time as when we have not seen any other master. Make sure we're not taking over at once for master that is on the way down