aboutsummaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@vespa.ai>2023-11-13 15:02:42 +0100
committerBjørn Christian Seime <bjorncs@vespa.ai>2023-11-13 15:02:42 +0100
commitdbf869faef9ed75dad5a160221f70bbbed8a43ee (patch)
treeb7b138247743c3af653fe316fc2d658bcaf6ef30 /container-core
parent24c328285d8726f4cf1aefd323c1e5096a6f83e9 (diff)
Add configuration for shutdown idle timeout
Diffstat (limited to 'container-core')
-rw-r--r--container-core/abi-spec.json2
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java6
-rw-r--r--container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def3
3 files changed, 10 insertions, 1 deletions
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json
index aae5ea31fbb..3c11abb9d08 100644
--- a/container-core/abi-spec.json
+++ b/container-core/abi-spec.json
@@ -1089,6 +1089,7 @@
"public com.yahoo.jdisc.http.ConnectorConfig$Builder maxContentSizeErrorMessageTemplate(java.lang.String)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder reuseAddress(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder idleTimeout(double)",
+ "public com.yahoo.jdisc.http.ConnectorConfig$Builder shutdownIdleTimeout(double)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder tcpKeepAliveEnabled(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder tcpNoDelay(boolean)",
"public com.yahoo.jdisc.http.ConnectorConfig$Builder throttling(com.yahoo.jdisc.http.ConnectorConfig$Throttling$Builder)",
@@ -1475,6 +1476,7 @@
"public java.lang.String maxContentSizeErrorMessageTemplate()",
"public boolean reuseAddress()",
"public double idleTimeout()",
+ "public double shutdownIdleTimeout()",
"public boolean tcpKeepAliveEnabled()",
"public boolean tcpNoDelay()",
"public com.yahoo.jdisc.http.ConnectorConfig$Throttling throttling()",
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
index 983adec034d..3159766981c 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
@@ -51,7 +51,11 @@ class JDiscServerConnector extends ServerConnector {
setName(config.name());
setAcceptQueueSize(config.acceptQueueSize());
setReuseAddress(config.reuseAddress());
- setIdleTimeout((long) (config.idleTimeout() * 1000));
+ long idleTimeout = (long)(config.idleTimeout() * 1000);
+ setIdleTimeout(idleTimeout);
+ long shutdownIdleTimeout = (long) (config.shutdownIdleTimeout() * 1000);
+ // Ensure shutdown idle timeout is less than idle timeout and stop timeout
+ setShutdownIdleTimeout(Math.min(shutdownIdleTimeout, Math.min(idleTimeout, server.getStopTimeout())));
}
public ConnectionStatistics getStatistics() {
diff --git a/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def b/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
index d2f081fe7d5..5e59d998e86 100644
--- a/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
+++ b/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
@@ -33,6 +33,9 @@ reuseAddress bool default=true
# The maximum idle time for a connection, which roughly translates to the Socket.setSoTimeout(int).
idleTimeout double default=180.0
+# The idle timeout that takes effect during graceful shutdown of Jetty
+shutdownIdleTimeout double default=5.0
+
# TODO Vespa 9 Remove
# Has no effect since Jetty 11 upgrade
tcpKeepAliveEnabled bool default=false