summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-06-08 14:27:28 +0200
committerHarald Musum <musum@yahoo-inc.com>2017-06-08 14:27:28 +0200
commit08e1b2642549a3f15dd757790f324debab8fe949 (patch)
tree041c3443635f6500f62856d06c18fa62ecb7bc6b /configserver
parent7923d9ac1ed454ce82e7cde800042b4a411d62c3 (diff)
Wait until all applications have been redeployed
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java7
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java6
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();