From c6cecc2303637abe3da54be197414b9cbb6368f1 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Fri, 11 Sep 2020 09:52:02 +0200 Subject: Do not start config server maintainers until bootstrapping is done --- .../vespa/config/server/maintenance/ConfigServerMaintenance.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java index 9f2d6d178be..c5d3d6f72f4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java @@ -6,6 +6,7 @@ import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.AbstractComponent; import com.yahoo.jdisc.Metric; import com.yahoo.vespa.config.server.ApplicationRepository; +import com.yahoo.vespa.config.server.ConfigServerBootstrap; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.flags.FlagSource; @@ -15,7 +16,8 @@ import java.time.Duration; /** * Maintenance jobs of the config server. * Each maintenance job is a singleton instance of its implementing class, created and owned by this, - * and running its own dedicated thread. + * and running its own dedicated thread. {@link ConfigServerBootstrap} is injected into this class, so + * no maintainers will run until bootstrapping is done * * @author hmusum */ @@ -27,7 +29,8 @@ public class ConfigServerMaintenance extends AbstractComponent { private final ApplicationPackageMaintainer applicationPackageMaintainer; @Inject - public ConfigServerMaintenance(ConfigserverConfig configserverConfig, + public ConfigServerMaintenance(ConfigServerBootstrap configServerBootstrap, + ConfigserverConfig configserverConfig, ApplicationRepository applicationRepository, Curator curator, FlagSource flagSource, -- cgit v1.2.3 From 4bff34c9db3c893164d6ea6071e228461a938e22 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Fri, 11 Sep 2020 10:58:50 +0200 Subject: Running maintainers before bootstrap did not have any positive effect, removing --- .../vespa/config/server/ConfigServerBootstrap.java | 21 +++++++-------------- .../server/maintenance/ConfigServerMaintenance.java | 5 ----- 2 files changed, 7 insertions(+), 19 deletions(-) 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 21f6a152d23..749561d5fdb 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,9 +10,11 @@ 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.ConfigServerMaintenance; +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; @@ -70,25 +72,23 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable @Inject public ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server, - VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus, - ConfigServerMaintenance configServerMaintenance) { + VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus) { this(applicationRepository, server, versionState, stateMonitor, vipStatus, BOOTSTRAP_IN_CONSTRUCTOR, EXIT_JVM, applicationRepository.configserverConfig().hostedVespa() ? VipStatusMode.VIP_STATUS_FILE - : VipStatusMode.VIP_STATUS_PROGRAMMATICALLY, - Optional.of(configServerMaintenance)); + : VipStatusMode.VIP_STATUS_PROGRAMMATICALLY); } // For testing only ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server, VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus, Mode mode, VipStatusMode vipStatusMode) { - this(applicationRepository, server, versionState, stateMonitor, vipStatus, mode, CONTINUE, vipStatusMode, Optional.empty()); + this(applicationRepository, server, versionState, stateMonitor, vipStatus, mode, CONTINUE, vipStatusMode); } private ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server, VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus, Mode mode, RedeployingApplicationsFails exitIfRedeployingApplicationsFails, - VipStatusMode vipStatusMode, Optional configServerMaintenance) { + VipStatusMode vipStatusMode) { this.applicationRepository = applicationRepository; this.server = server; this.versionState = versionState; @@ -102,13 +102,6 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable log.log(Level.FINE, "Bootstrap mode: " + mode + ", VIP status mode: " + vipStatusMode); initializing(vipStatusMode); - // Run maintainers that cleans up zookeeper and disk usage before bootstrapping - try { - configServerMaintenance.ifPresent(ConfigServerMaintenance::runBeforeBootstrap); - } catch (Exception e) { - log.log(Level.INFO, "Running maintainers before bootstrap failed, continuing with bootstrap", Exceptions.toMessageString(e)); - } - switch (mode) { case BOOTSTRAP_IN_SEPARATE_THREAD: this.serverThread = Optional.of(new Thread(this, "config server bootstrap thread")); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java index c5d3d6f72f4..0e75d683478 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java @@ -63,9 +63,4 @@ public class ConfigServerMaintenance extends AbstractComponent { } } - public void runBeforeBootstrap() { - fileDistributionMaintainer.lockAndMaintain(); - sessionsMaintainer.lockAndMaintain(); - } - } -- cgit v1.2.3