diff options
author | Harald Musum <musum@oath.com> | 2018-12-18 12:18:38 +0100 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-12-18 12:18:38 +0100 |
commit | f16506727829d4f2d760f74092718c10cc4593ea (patch) | |
tree | bba9328f213e999eb2b5204d0d1785641acdf263 /configserver/src/main | |
parent | 305d22637387d183be17a0582b1ced76f2b44982 (diff) |
Use feature flag to control how to do bootstrapping
Diffstat (limited to 'configserver/src/main')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java | 10 |
1 files changed, 6 insertions, 4 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 f163a100fd8..0f52557ed65 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 @@ -12,6 +12,8 @@ import com.yahoo.container.jdisc.state.StateMonitor; import com.yahoo.log.LogLevel; import com.yahoo.vespa.config.server.rpc.RpcServer; import com.yahoo.vespa.config.server.version.VersionState; +import com.yahoo.vespa.flags.FeatureFlag; +import com.yahoo.vespa.flags.FlagSource; import java.time.Duration; import java.time.Instant; @@ -40,6 +42,7 @@ import java.util.concurrent.TimeUnit; public class ConfigServerBootstrap extends AbstractComponent implements Runnable { private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(ConfigServerBootstrap.class.getName()); + static final String bootstrapFeatureFlag = "config-server-bootstrap-in-separate-thread"; enum Mode {BOOTSTRAP_IN_CONSTRUCTOR, BOOTSTRAP_IN_SEPARATE_THREAD, INITIALIZE_ONLY} // INITIALIZE_ONLY is for testing only enum RedeployingApplicationsFails {EXIT_JVM, CONTINUE} @@ -56,14 +59,13 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable private final RedeployingApplicationsFails exitIfRedeployingApplicationsFails; private final ExecutorService rpcServerExecutor; - // The tenants object is injected so that all initial requests handlers are - // added to the rpc server before it starts answering rpc requests. @SuppressWarnings("WeakerAccess") @Inject public ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server, - VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus) { + VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus, + FlagSource flagSource) { this(applicationRepository, server, versionState, stateMonitor, vipStatus, - applicationRepository.configserverConfig().bootstrapInSeparateThread () ? Mode.BOOTSTRAP_IN_SEPARATE_THREAD : Mode.BOOTSTRAP_IN_CONSTRUCTOR, + new FeatureFlag(bootstrapFeatureFlag, true, flagSource).value() ? Mode.BOOTSTRAP_IN_SEPARATE_THREAD : Mode.BOOTSTRAP_IN_CONSTRUCTOR, RedeployingApplicationsFails.EXIT_JVM); } |