You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ic...@apache.org on 2019/01/24 15:25:52 UTC

svn commit: r1852038 - in /httpd/httpd/trunk: CHANGES modules/http2/h2_conn.c modules/http2/h2_mplx.c modules/http2/h2_task.c

Author: icing
Date: Thu Jan 24 15:25:52 2019
New Revision: 1852038

URL: http://svn.apache.org/viewvc?rev=1852038&view=rev
Log:
mod_http2: enable re-use of slave connections again.

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/http2/h2_conn.c
    httpd/httpd/trunk/modules/http2/h2_mplx.c
    httpd/httpd/trunk/modules/http2/h2_task.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1852038&r1=1852037&r2=1852038&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Thu Jan 24 15:25:52 2019
@@ -1,6 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.1
 
+  *) mod_http2: enable re-use of slave connections again. [Stefan Eissing]
+
   *) mod_proxy_wstunnel: Fix websocket proxy over UDS.
      PR 62932 <pavel dcmsys.com>
   

Modified: httpd/httpd/trunk/modules/http2/h2_conn.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_conn.c?rev=1852038&r1=1852037&r2=1852038&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_conn.c (original)
+++ httpd/httpd/trunk/modules/http2/h2_conn.c Thu Jan 24 15:25:52 2019
@@ -370,17 +370,16 @@ apr_status_t h2_slave_run_pre_connection
          * (Not necessarily in pre_connection, but later. Set it here, so it
          * is in place.) */
         slave->keepalives = 1;
-        /* We signal that this connection will be closed after the request.
-         * Which is true in that sense that we throw away all traffic data
-         * on this slave connection after each requests. Although we might
-         * reuse internal structures like memory pools.
-         * The wanted effect of this is that httpd does not try to clean up
-         * any dangling data on this connection when a request is done. Which
-         * is unneccessary on a h2 stream.
-         */
-        slave->keepalive = AP_CONN_CLOSE;
-        return ap_run_pre_connection(slave, csd);
     }
-    return APR_SUCCESS;
+    /* We signal that this connection will be closed after the request.
+     * Which is true in that sense that we throw away all traffic data
+     * on this slave connection after each requests. Although we might
+     * reuse internal structures like memory pools.
+     * The wanted effect of this is that httpd does not try to clean up
+     * any dangling data on this connection when a request is done. Which
+     * is unneccessary on a h2 stream.
+     */
+    slave->keepalive = AP_CONN_CLOSE;
+    return ap_run_pre_connection(slave, csd);
 }
 

Modified: httpd/httpd/trunk/modules/http2/h2_mplx.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_mplx.c?rev=1852038&r1=1852037&r2=1852038&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_mplx.c (original)
+++ httpd/httpd/trunk/modules/http2/h2_mplx.c Thu Jan 24 15:25:52 2019
@@ -327,7 +327,8 @@ static int stream_destroy_iter(void *ctx
                                && !task->rst_error);
             }
             
-            if (reuse_slave && slave->keepalive == AP_CONN_KEEPALIVE) {
+            task->c = NULL;
+            if (reuse_slave) {
                 h2_beam_log(task->output.beam, m->c, APLOG_DEBUG, 
                             APLOGNO(03385) "h2_task_destroy, reuse slave");    
                 h2_task_destroy(task);

Modified: httpd/httpd/trunk/modules/http2/h2_task.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_task.c?rev=1852038&r1=1852037&r2=1852038&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_task.c (original)
+++ httpd/httpd/trunk/modules/http2/h2_task.c Thu Jan 24 15:25:52 2019
@@ -545,7 +545,6 @@ h2_task *h2_task_create(conn_rec *slave,
 void h2_task_destroy(h2_task *task)
 {
     if (task->output.beam) {
-        h2_beam_log(task->output.beam, task->c, APLOG_TRACE2, "task_destroy");
         h2_beam_destroy(task->output.beam);
         task->output.beam = NULL;
     }