aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorJon Bratseth <jonbratseth@yahoo.com>2017-06-08 14:44:14 +0200
committerGitHub <noreply@github.com>2017-06-08 14:44:14 +0200
commit88a9d41cad4b959e03a91afc984976909c29b3a7 (patch)
tree2575b87782c055d34a2c16b8ba8feea52a6f1443 /configserver
parentc80ac9c22ef0617ee70ccd2da3867a62c9b1553b (diff)
parent08e1b2642549a3f15dd757790f324debab8fe949 (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.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();