diff options
author | Harald Musum <musum@yahooinc.com> | 2022-01-17 11:28:47 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-01-17 11:28:47 +0100 |
commit | 7b1159ac97c8372cccd4a2be37b6859543862f3d (patch) | |
tree | da3fda6778521d6b7e38bb6f12a56f65955f5eec /configserver | |
parent | 6e119fe4bdb3e6456597ef1e095bbdd88642dba7 (diff) |
Uae timeout budget and improve some logging
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java index be5867d132f..1b9ab42a327 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java @@ -32,7 +32,6 @@ import com.yahoo.vespa.flags.Flags; import java.time.Clock; import java.time.Duration; -import java.time.Instant; import java.util.Optional; import java.util.Set; import java.util.concurrent.atomic.AtomicReference; @@ -179,25 +178,26 @@ public class Deployment implements com.yahoo.config.provision.Deployment { BooleanFlag verify = Flags.CHECK_CONFIG_CONVERGENCE_BEFORE_RESTARTING.bindTo(applicationRepository.flagSource()); if ( ! verify.value()) return; - Instant end = clock.instant().plus(Duration.ofMinutes(10)); // Timeout per service when getting config generations Duration timeout = Duration.ofSeconds(10); - do { + while (true) { + params.get().getTimeoutBudget().assertNotTimedOut( + () -> "Timeout exceeded while waiting for config convergence for " + applicationId); + Application app = applicationRepository.getActiveApplication(applicationId); - log.info("Wait for services in " + applicationId + " to converge on new generation before restarting"); + + log.info(session.logPre() + "Wait for services to converge on new generation before restarting"); ConfigConvergenceChecker convergenceChecker = applicationRepository.configConvergenceChecker(); ServiceListResponse response = convergenceChecker.getConfigGenerationsForAllServices(app, timeout); if (response.converged) { - log.info("services converged on new generation " + response.currentGeneration); + log.info(session.logPre() + "Services converged on new generation " + response.currentGeneration); return; } else { - log.info("services not converged on new generation, wanted generation: " + response.wantedGeneration + + log.info(session.logPre() + "Services not converged on new generation, wanted generation: " + response.wantedGeneration + ", current generation: " + response.currentGeneration + ", will retry"); try { Thread.sleep(10_000); } catch (InterruptedException e) { /* ignore */ } } - } while (clock.instant().isBefore(end)); - - throw new RuntimeException("Config has not converged"); + } } private void storeReindexing(ApplicationId applicationId, long requiredSession) { |