summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2019-03-13 14:52:40 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-03-13 15:33:00 +0100
commit3b1f0041a31b015b989ffb56a520939097b5fc22 (patch)
treea1410fb9c2f5ae4f6f35baa855fa8c0920f06d89 /jdisc_http_service
parentb552a4ee99e256804829e062cd75280d5df3319c (diff)
Add stop timeout to server config
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/abi-spec.json2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java2
-rw-r--r--jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.connector.def3
-rw-r--r--jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.server.def4
4 files changed, 9 insertions, 2 deletions
diff --git a/jdisc_http_service/abi-spec.json b/jdisc_http_service/abi-spec.json
index 62093a8cf3c..04e6d22a445 100644
--- a/jdisc_http_service/abi-spec.json
+++ b/jdisc_http_service/abi-spec.json
@@ -538,6 +538,7 @@
"public com.yahoo.jdisc.http.ServerConfig$Builder filter(com.yahoo.jdisc.http.ServerConfig$Filter$Builder)",
"public com.yahoo.jdisc.http.ServerConfig$Builder filter(java.util.List)",
"public com.yahoo.jdisc.http.ServerConfig$Builder maxWorkerThreads(int)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder stopTimeout(double)",
"public com.yahoo.jdisc.http.ServerConfig$Builder jmx(com.yahoo.jdisc.http.ServerConfig$Jmx$Builder)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
@@ -648,6 +649,7 @@
"public java.util.List filter()",
"public com.yahoo.jdisc.http.ServerConfig$Filter filter(int)",
"public int maxWorkerThreads()",
+ "public double stopTimeout()",
"public com.yahoo.jdisc.http.ServerConfig$Jmx jmx()"
],
"fields": [
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
index 07d3d77dff2..60ef2f7122e 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
@@ -40,7 +40,6 @@ import org.osgi.framework.ServiceReference;
import javax.management.remote.JMXServiceURL;
import javax.servlet.DispatcherType;
-
import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.net.BindException;
@@ -141,6 +140,7 @@ public class JettyHttpServer extends AbstractServerProvider {
initializeJettyLogging();
server = new Server();
+ server.setStopTimeout((long)(serverConfig.stopTimeout() * 1000.0));
server.setRequestLog(new AccessLogRequestLog(accessLog));
setupJmx(server, serverConfig);
((QueuedThreadPool)server.getThreadPool()).setMaxThreads(serverConfig.maxWorkerThreads());
diff --git a/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.connector.def b/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.connector.def
index 30c74ed2c35..e5f954fc538 100644
--- a/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.connector.def
+++ b/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.connector.def
@@ -28,7 +28,8 @@ 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 stop timeout.
+# The stop timeout in seconds (timeout for processing in-flight requests during server shutdown).
+# Should usually match the stopTimeout in the server config.
stopTimeout double default=30.0
# Whether or not to have socket keep alive turned on.
diff --git a/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.server.def b/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.server.def
index a6cb43cee17..5cbbfdbbb33 100644
--- a/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.server.def
+++ b/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.server.def
@@ -27,6 +27,10 @@ filter[].binding string
# Max number of threads in pool
maxWorkerThreads int default = 200
+# Stop timeout in seconds (timeout for processing in-flight requests during server shutdown).
+# Should usually match the stopTimeout in the connector config.
+stopTimeout double default = 30.0
+
# Enable embedded JMX server. Note: only accessible through the loopback interface.
jmx.enabled bool default = false