diff options
author | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-11-13 15:02:42 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-11-13 15:02:42 +0100 |
commit | dbf869faef9ed75dad5a160221f70bbbed8a43ee (patch) | |
tree | b7b138247743c3af653fe316fc2d658bcaf6ef30 /container-core | |
parent | 24c328285d8726f4cf1aefd323c1e5096a6f83e9 (diff) |
Add configuration for shutdown idle timeout
Diffstat (limited to 'container-core')
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 |