Merge branch 'stable-2.13' into stable-2.14
* stable-2.13:
Allow setting Jetty HTTPD socket timeout
Change-Id: Ic37eb4993a88980cf18f0c9de5732b9060a4b75b
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index 8482b92..ebe6ddb 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -2522,6 +2522,21 @@
filterClass = org.anyorg.MySecureIPFilter
----
+[[httpd.idleTimeout]]httpd.idleTimeout::
++
+Maximum idle time for a connection, which roughly translates to the
+TCP socket `SO_TIMEOUT`.
++
+The max idle time is applied:
+* When waiting for a new message to be received on a connection
+* When waiting for a new message to be sent on a connection
++
+This value is interpreted as the maximum time between some progress
+being made on the connection. So if a single byte is read or written,
+then the timeout is reset.
++
+By default, 30 seconds.
+
[[httpd.robotsFile]]httpd.robotsFile::
+
Location of an external robots.txt file to be used instead of the one
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java
index 4fa2a98..c7606d6 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java
@@ -277,6 +277,7 @@
}
c.setInheritChannel(cfg.getBoolean("httpd", "inheritChannel", false));
c.setReuseAddress(reuseAddress);
+ c.setIdleTimeout(cfg.getTimeUnit("httpd", null, "idleTimeout", 30000L, MILLISECONDS));
connectors[idx] = c;
}
return connectors;