Author: markt Date: Fri Feb 1 10:28:18 2019 New Revision: 1852701 URL: http://svn.apache.org/viewvc?rev=1852701&view=rev Log: Use true keep-alive timeout when there are no active streams
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java?rev=1852701&r1=1852700&r2=1852701&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java Fri Feb 1 10:28:18 2019 @@ -41,9 +41,9 @@ import org.apache.tomcat.util.net.Socket public class Http2Protocol implements UpgradeProtocol { - static final long DEFAULT_READ_TIMEOUT = 10000; - static final long DEFAULT_WRITE_TIMEOUT = 10000; - static final long DEFAULT_KEEP_ALIVE_TIMEOUT = -1; + static final long DEFAULT_READ_TIMEOUT = 5000; + static final long DEFAULT_WRITE_TIMEOUT = 5000; + static final long DEFAULT_KEEP_ALIVE_TIMEOUT = 20000; static final long DEFAULT_STREAM_READ_TIMEOUT = 20000; static final long DEFAULT_STREAM_WRITE_TIMEOUT = 20000; // The HTTP/2 specification recommends a minimum default of 100 Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1852701&r1=1852700&r2=1852701&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Feb 1 10:28:18 2019 @@ -329,9 +329,16 @@ class Http2UpgradeHandler extends Abstra } } } - // No more frames to read so switch to the keep-alive - // timeout. - socketWrapper.setReadTimeout(protocol.getKeepAliveTimeout()); + + if (activeRemoteStreamCount.get() == 0) { + // No streams currently active. Use the keep-alive + // timeout for the connection. + socketWrapper.setReadTimeout(protocol.getKeepAliveTimeout()); + } else { + // Streams currently active. Individual streams have + // timeouts so keep the connection open. + socketWrapper.setReadTimeout(-1); + } } catch (Http2Exception ce) { // Really ConnectionException if (log.isDebugEnabled()) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org