summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@verizonmedia.com>2019-10-30 15:18:18 +0100
committerTor Brede Vekterli <vekterli@verizonmedia.com>2019-10-30 15:18:18 +0100
commit42d4d5611bba00de4286d42c2da70c2c1462eddb (patch)
treec4c70f4a4e5a842fac1291c79192c6cd921c5581 /clustercontroller-core
parent056af10e314ef6fc924402238c9719cb473b7f18 (diff)
Pass working candidate state rather than published state to timer code
Avoids triggering pointless cluster state recomputation edges because the timer code observes stale information. This can happen if publishing the candidate state is suppressed due to e.g. the minimum time between published state versions not having passed.
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java5
1 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 b4965fbff7b..cbff11af730 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
@@ -812,8 +812,9 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd
// Send getNodeState requests to zero or more nodes.
didWork |= stateGatherer.sendMessages(cluster, communicator, this);
- // Important: timer events must use a consolidated state, or they might trigger edge events multiple times.
- didWork |= stateChangeHandler.watchTimers(cluster, consolidatedClusterState(), this);
+ // Important: timer events must use a state with pending changes visible, or they might
+ // trigger edge events multiple times.
+ didWork |= stateChangeHandler.watchTimers(cluster, stateVersionTracker.getLatestCandidateState().getClusterState(), this);
didWork |= recomputeClusterStateIfRequired();