]> granicus.if.org Git - apache/commitdiff
mod_http2: no master timeout while requests are ongoing
authorStefan Eissing <icing@apache.org>
Mon, 11 Jul 2016 11:03:24 +0000 (11:03 +0000)
committerStefan Eissing <icing@apache.org>
Mon, 11 Jul 2016 11:03:24 +0000 (11:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1752145 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/http2/h2_session.c
modules/http2/h2_session.h

diff --git a/CHANGES b/CHANGES
index 5c3ffb230f357c16640588128d215b870def87d5..d5515d0aa0a4b1dc363632a059d17578e15df39c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_http2: removing timeouts on master connection while requests are
+     being processed. Requests may timeout, but the master only times out when
+     no more requests are active. [Stefan Eissing]
+     
   *) mod_crypto: Add the all purpose crypto filters with support for HLS.
      [Graham Leggett]
 
index 6922b5f43804376c328d2fbdda6f7cafbe47606c..f32c79c98412cffb6c37b55ab7547e32fb23ace8 100644 (file)
@@ -2248,21 +2248,11 @@ apr_status_t h2_session_process(h2_session *session, int async)
             case H2_SESSION_ST_WAIT:
                 if (session->wait_us <= 0) {
                     session->wait_us = 10;
-                    session->start_wait = apr_time_now();
                     if (h2_conn_io_flush(&session->io) != APR_SUCCESS) {
                         dispatch_event(session, H2_SESSION_EV_CONN_ERROR, 0, NULL);
                         break;
                     }
                 }
-                else if ((apr_time_now() - session->start_wait) >= session->s->timeout) {
-                    /* waited long enough */
-                    if (trace) {
-                        ap_log_cerror(APLOG_MARK, APLOG_TRACE3, APR_TIMEUP, c,
-                                      "h2_session: wait for data");
-                    }
-                    dispatch_event(session, H2_SESSION_EV_CONN_TIMEOUT, 0, "timeout");
-                    break;
-                }
                 else {
                     /* repeating, increase timer for graceful backoff */
                     session->wait_us = H2MIN(session->wait_us*2, MAX_WAIT_MICROS);
index c5c5b7aecf4b5bcb1cab204bae921a38362e2005..3db70b3589fbbbbda59b92d2624097689188a2a2 100644 (file)
@@ -120,7 +120,6 @@ typedef struct h2_session {
     apr_size_t max_stream_count;    /* max number of open streams */
     apr_size_t max_stream_mem;      /* max buffer memory for a single stream */
     
-    apr_time_t start_wait;          /* Time we started waiting for sth. to happen */
     apr_time_t idle_until;          /* Time we shut down due to sheer boredom */
     apr_time_t keep_sync_until;     /* Time we sync wait until passing to async mpm */