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 2016/12/23 12:42:35 UTC

svn commit: r1775833 - in /httpd/httpd/trunk: CHANGES modules/http2/h2_bucket_beam.c

Author: icing
Date: Fri Dec 23 12:42:35 2016
New Revision: 1775833

URL: http://svn.apache.org/viewvc?rev=1775833&view=rev
Log:
On the trunk:

Cleanup mod_http2 beamer registry on server reload. Fixes PR60510.

 * modules/http2/h2_bucket_beam.c
   register cleanup function on installation that NULLs the beamer
   registry on pool cleanup.

Patch by: Pavel Mateja <pavel@verotel.cz
          me


Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/http2/h2_bucket_beam.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1775833&r1=1775832&r2=1775833&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Fri Dec 23 12:42:35 2016
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_http2: cleanup beamer registry on server reload, Fixes PR60510.
+     [Pavel Mateja <pa...@verotel.cz>, Stefan Eissing]
+     
   *) mod_proxy_{ajp,fcgi}: Fix a possible crash when reusing an established
      backend connection, happening with LogLevel trace2 or higher configured,
      or at any log level with compilers not detected as C99 compliant (e.g.

Modified: httpd/httpd/trunk/modules/http2/h2_bucket_beam.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_bucket_beam.c?rev=1775833&r1=1775832&r2=1775833&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http2/h2_bucket_beam.c (original)
+++ httpd/httpd/trunk/modules/http2/h2_bucket_beam.c Fri Dec 23 12:42:35 2016
@@ -153,10 +153,19 @@ const apr_bucket_type_t h2_bucket_type_b
  ******************************************************************************/
 
 static apr_array_header_t *beamers;
- 
+
+static apr_status_t cleanup_beamers(void *dummy)
+{
+    (void)dummy;
+    beamers = NULL;
+    return APR_SUCCESS;
+}
+
 void h2_register_bucket_beamer(h2_bucket_beamer *beamer)
 {
     if (!beamers) {
+        apr_pool_cleanup_register(apr_hook_global_pool, NULL,
+                                  cleanup_beamers, apr_pool_cleanup_null);
         beamers = apr_array_make(apr_hook_global_pool, 10, 
                                  sizeof(h2_bucket_beamer*));
     }