summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon@verizonmedia.com>2020-09-11 13:18:08 +0200
committerGitHub <noreply@github.com>2020-09-11 13:18:08 +0200
commitc9873108633f025da1546f07b2c1ee13ebddff57 (patch)
tree0dc23ac8faad9d6da5dd1633248b35ab023d07bd
parent975cf2607832fb10477bdff21e42345bb83ef39a (diff)
parent4bff34c9db3c893164d6ea6071e228461a938e22 (diff)
Merge pull request #14375 from vespa-engine/hmusum/do-not-start-config-server-maintainers-until-bootstrapping-is-done
Do not start config server maintainers until bootstrapping is done
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java21
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java12
2 files changed, 12 insertions, 21 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> 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 9f2d6d178be..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
@@ -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,
@@ -60,9 +63,4 @@ public class ConfigServerMaintenance extends AbstractComponent {
}
}
- public void runBeforeBootstrap() {
- fileDistributionMaintainer.lockAndMaintain();
- sessionsMaintainer.lockAndMaintain();
- }
-
}