summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@verizonmedia.com>2020-05-05 15:32:26 +0200
committerTor Brede Vekterli <vekterli@verizonmedia.com>2020-05-05 15:32:26 +0200
commit3520e4d740d158f7ed08e695abcfff3ae807d436 (patch)
tree8b216d4f5d578baa50ee1ef0370b21c95426418e
parenta5a736466f91700bfe7bb72538463aa274ce26e3 (diff)
Downgrade log level when node watch races with internal state resets
This appears to happen if pending data node watches are triggered with failures after the cluster controller has already reset the internal voting state due to connectivity issues. Internal state is rebuilt automatically, so no need to scream errors into the logs for this.
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/MasterDataGatherer.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/MasterDataGatherer.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/MasterDataGatherer.java
index cd5202c89b2..fef93aede1a 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/MasterDataGatherer.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/MasterDataGatherer.java
@@ -121,7 +121,10 @@ public class MasterDataGatherer {
if (nextMasterData.containsKey(index)) {
nextMasterData.remove(index);
} else {
- log.log(Level.SEVERE, "Fleetcontroller " + nodeIndex + ": Strangely, we already had data from node " + index + " when trying to remove it");
+ // May happen when pending data watch error callbacks are triggered concurrently with
+ // internal voting state having already been cleared due to connectivity issues.
+ log.log(Level.INFO, String.format("Fleetcontroller %d: ignoring removal of vote from node %d " +
+ "since it was not present in existing vote mapping", nodeIndex, index));
}
} else {
Integer value = Integer.valueOf(data);