diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-10-30 15:18:18 +0100 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-10-30 15:18:18 +0100 |
commit | 42d4d5611bba00de4286d42c2da70c2c1462eddb (patch) | |
tree | c4c70f4a4e5a842fac1291c79192c6cd921c5581 /clustercontroller-core | |
parent | 056af10e314ef6fc924402238c9719cb473b7f18 (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.java | 5 |
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(); |