diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-09-16 14:06:23 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-09-16 14:06:23 +0200 |
commit | c12dfa2fef99ad6bf76cf7560002b5f821bcab23 (patch) | |
tree | 022d23ae2a70b31d605c46c1aac0181f05072725 /configserver | |
parent | 42e573b6b444d392d1351886295728bc65c93c71 (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.java | 14 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java | 4 |
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(); } |