aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-09-16 14:06:23 +0200
committerHarald Musum <musum@verizonmedia.com>2020-09-16 14:06:23 +0200
commitc12dfa2fef99ad6bf76cf7560002b5f821bcab23 (patch)
tree022d23ae2a70b31d605c46c1aac0181f05072725 /configserver
parent42e573b6b444d392d1351886295728bc65c93c71 (diff)
Wait with deployments until bootstrapping has finished
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java4
2 files changed, 15 insertions, 3 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 824d6701233..59b9c549319 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
@@ -87,6 +87,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -112,6 +113,8 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
private static final Logger log = Logger.getLogger(ApplicationRepository.class.getName());
+ private final AtomicBoolean bootstrapping = new AtomicBoolean(true);
+
private final TenantRepository tenantRepository;
private final Optional<Provisioner> hostProvisioner;
private final Optional<InfraDeployer> infraDeployer;
@@ -268,6 +271,15 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
// ---------------- Deploying ----------------------------------------------------------------
+ @Override
+ public boolean bootstrapping() {
+ return bootstrapping.get();
+ }
+
+ public void bootstrappingDone() {
+ bootstrapping.set(false);
+ }
+
public PrepareResult prepare(Tenant tenant, long sessionId, PrepareParams prepareParams, Instant now) {
validateThatLocalSessionIsNotActive(tenant, sessionId);
LocalSession session = getLocalSession(tenant, sessionId);
@@ -367,6 +379,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
SessionRepository sessionRepository = tenant.getSessionRepository();
LocalSession newSession = sessionRepository.createSessionFromExisting(activeSession, logger, true, timeoutBudget);
sessionRepository.addLocalSession(newSession);
+ sessionRepository.createRemoteSession(newSession.getSessionId());
return Optional.of(Deployment.unprepared(newSession, this, hostProvisioner, tenant, timeout, clock,
false /* don't validate as this is already deployed */, bootstrap));
@@ -815,6 +828,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
timeoutBudget,
activeSessionId);
tenant.getSessionRepository().addLocalSession(session);
+ tenant.getSessionRepository().createRemoteSession(session.getSessionId());
return session.getSessionId();
}
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 749561d5fdb..609ff4473c6 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
@@ -10,11 +10,8 @@ import com.yahoo.config.provision.Deployment;
import com.yahoo.config.provision.TransientException;
import com.yahoo.container.handler.VipStatus;
import com.yahoo.container.jdisc.state.StateMonitor;
-import com.yahoo.vespa.config.server.maintenance.FileDistributionMaintainer;
import com.yahoo.vespa.config.server.rpc.RpcServer;
import com.yahoo.vespa.config.server.version.VersionState;
-import com.yahoo.vespa.curator.Curator;
-import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.yolean.Exceptions;
import java.time.Duration;
@@ -166,6 +163,7 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable
return; // Status will not be set to 'up' since we return here
}
}
+ applicationRepository.bootstrappingDone();
startRpcServer();
up();
}