Skip to content

Commit 9636d55

Browse files
committed
Schedule a reconfiguration if abdication wasn't possible
1 parent d6f7eb3 commit 9636d55

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

server/src/main/java/org/elasticsearch/cluster/coordination/Coordinator.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,18 +1298,22 @@ public void onSuccess(String source) {
12981298
updateMaxTermSeen(getCurrentTerm());
12991299

13001300
if (mode == Mode.LEADER) {
1301+
// if necessary, abdicate to another node or improve the voting configuration
1302+
boolean attemptReconfiguration = true;
13011303
final ClusterState state = getLastAcceptedState(); // committed state
1302-
if (localNodeMayWinElection(state)) {
1303-
scheduleReconfigurationIfNeeded();
1304-
} else {
1304+
if (localNodeMayWinElection(state) == false) {
13051305
final List<DiscoveryNode> masterCandidates = completedNodes().stream()
13061306
.filter(DiscoveryNode::isMasterNode)
13071307
.filter(node -> nodeMayWinElection(state, node))
13081308
.collect(Collectors.toList());
13091309
if (masterCandidates.isEmpty() == false) {
13101310
abdicateTo(masterCandidates.get(random.nextInt(masterCandidates.size())));
1311+
attemptReconfiguration = false;
13111312
}
13121313
}
1314+
if (attemptReconfiguration) {
1315+
scheduleReconfigurationIfNeeded();
1316+
}
13131317
}
13141318
lagDetector.startLagDetector(publishRequest.getAcceptedState().version());
13151319
}

0 commit comments

Comments
 (0)