diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-31 16:39:14 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-31 16:39:14 +0100 |
commit | afc48a47ba8a3fbb31da97aa562b097ba2868b05 (patch) | |
tree | cbbc147a5134f8a87666e019170059c1c1d543c1 /config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java | |
parent | a8f256a02c0861bf1817ebc68dc169cf86e57a20 (diff) |
Add feature flag to enable preshutdown command for jdisc
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java index 43cb896c09b..54b9a4511b0 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java @@ -11,6 +11,10 @@ import com.yahoo.config.provision.NodeResources; import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.model.container.component.SimpleComponent; +import java.util.Optional; + +import static com.yahoo.vespa.defaults.Defaults.getDefaults; + /** * A container that is typically used by container clusters set up from the user application. * @@ -25,6 +29,7 @@ public final class ApplicationContainer extends Container implements private final boolean isHostedVespa; private final boolean enableServerOcspStapling; private final boolean useQrserverServiceName; + private final boolean enablePreshutdownCommand; public ApplicationContainer(AbstractConfigProducer<?> parent, String name, int index, DeployState deployState) { this(parent, name, false, index, deployState); @@ -35,6 +40,7 @@ public final class ApplicationContainer extends Container implements this.isHostedVespa = deployState.isHosted(); this.enableServerOcspStapling = deployState.featureFlags().enableServerOcspStapling(); this.useQrserverServiceName = deployState.featureFlags().useQrserverServiceName(); + this.enablePreshutdownCommand = deployState.featureFlags().enableJdiscPreshutdownCommand(); addComponent(new SimpleComponent("com.yahoo.container.jdisc.messagebus.NetworkMultiplexerHolder")); addComponent(new SimpleComponent("com.yahoo.container.jdisc.messagebus.NetworkMultiplexerProvider")); @@ -101,4 +107,12 @@ public final class ApplicationContainer extends Container implements return featureFlags.jvmOmitStackTraceInFastThrowOption(ClusterSpec.Type.container); } + @Override + public Optional<String> getPreShutdownCommand() { + if (!enablePreshutdownCommand) return Optional.empty(); + int preshutdownTimeoutSeconds = 360; + int rpcTimeoutSeconds = preshutdownTimeoutSeconds + 10; + String rpcParams = "-t " + rpcTimeoutSeconds + " tcp/localhost:" + getRpcPort() + " prepareStop d:" + preshutdownTimeoutSeconds; + return Optional.of(getDefaults().underVespaHome("bin/vespa-rpc-invoke") + " " + rpcParams); + } } |