aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-31 16:39:14 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-31 16:39:14 +0100
commitafc48a47ba8a3fbb31da97aa562b097ba2868b05 (patch)
treecbbc147a5134f8a87666e019170059c1c1d543c1 /config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java
parenta8f256a02c0861bf1817ebc68dc169cf86e57a20 (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.java14
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);
+ }
}