summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java5
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;