diff options
author | Harald Musum <musum@yahooinc.com> | 2021-10-14 10:47:55 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2021-10-14 10:47:55 +0200 |
commit | 4ffb287d650b52303ea8b51858f6746657ffe1ad (patch) | |
tree | a4727b5cfcbfbd2c13089f8b07065f99d4633d89 /config/src/main/java | |
parent | adad7cc066e7debe8137737a8ce9c6ce377a2c1a (diff) |
Don't track more than 10 failures and make sure delay has a minimum
Diffstat (limited to 'config/src/main/java')
-rw-r--r-- | config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java index c88bdf9f3b8..4c1d7b39755 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java @@ -165,7 +165,8 @@ public class JRTConfigRequester implements RequestWaiter { log.log(INFO, "Failure of config subscription to " + connection.getAddress() + ", clients will keep existing config until resolved: " + sub); connectionPool.switchConnection(connection); - failures++; + if (failures < 10) + failures++; long delay = calculateFailedRequestDelay(failures, timingValues); // The logging depends on whether we are configured or not. Level logLevel = sub.getConfigState().getConfig() == null ? Level.FINE : Level.INFO; @@ -177,7 +178,7 @@ public class JRTConfigRequester implements RequestWaiter { static long calculateFailedRequestDelay(int failures, TimingValues timingValues) { long delay = timingValues.getFixedDelay() * (long)Math.pow(2, failures); - delay = Math.min(60_000, delay); + delay = Math.max(timingValues.getFixedDelay(), Math.min(60_000, delay)); // between timingValues.getFixedDelay() and 60 seconds delay = timingValues.getPlusMinusFractionRandom(delay, randomFraction); return delay; |