diff options
author | Jon Bratseth <jonbratseth@yahoo.com> | 2017-06-08 14:44:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-08 14:44:14 +0200 |
commit | 88a9d41cad4b959e03a91afc984976909c29b3a7 (patch) | |
tree | 2575b87782c055d34a2c16b8ba8feea52a6f1443 /configserver | |
parent | c80ac9c22ef0617ee70ccd2da3867a62c9b1553b (diff) | |
parent | 08e1b2642549a3f15dd757790f324debab8fe949 (diff) |
Merge pull request #2674 from yahoo/hmusum/wait-until-all-applications-redeployed
Wait until all applications have been redeployed
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java | 7 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 229f24152c3..4bc059339b0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -44,12 +44,11 @@ import java.io.File; import java.net.URI; import java.time.Clock; import java.time.Duration; -import java.util.HashSet; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.logging.Logger; /** @@ -334,10 +333,12 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye return session.getSessionId(); } - void redeployAllApplications(Deployer deployer) { + void redeployAllApplications(Deployer deployer) throws InterruptedException { ExecutorService deploymentExecutor = Executors.newFixedThreadPool(configserverConfig.numParallelTenantLoaders()); tenants.getAllTenants().forEach(tenant -> listApplicationIds(tenant) .forEach(applicationId -> redeployApplication(applicationId, deployer, deploymentExecutor))); + deploymentExecutor.shutdown(); + deploymentExecutor.awaitTermination(365, TimeUnit.DAYS); // Timeout should never happen } private void redeployApplication(ApplicationId applicationId, Deployer deployer, ExecutorService deploymentExecutor) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java index e0def2b0e4b..357c4ca852e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java @@ -54,7 +54,11 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable if (versionState.isUpgraded()) { log.log(LogLevel.INFO, "Configserver upgraded from " + versionState.storedVersion() + " to " + versionState.currentVersion() + ". Redeploying all applications"); - applicationRepository.redeployAllApplications(deployer); + try { + applicationRepository.redeployAllApplications(deployer); + } catch (InterruptedException e) { + throw new RuntimeException("Redeploying applications failed", e); + } log.log(LogLevel.INFO, "All applications redeployed"); } versionState.saveNewVersion(); |