summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
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