Commit 808a94d0 authored by Yann Ylavic's avatar Yann Ylavic
Browse files

Merge r1828879 from trunk:

On the trunk:

mod_http2: always wake up any conditional waits when streams are aborted. Fixes race conditions where timeouts would trigger instead.

Submitted by: icing
Reviewed by: icing, jim, ylavic


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1832487 13f79535-47bb-0310-9956-ffa450edef68
parent 6a85e380
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
                                                         -*- coding: utf-8 -*-
Changes with Apache 2.4.34

  *) mod_http2: Fix unnecessary timeout waits in case streams are aborted.
     [Stefan Eissing]

  *) mod_proxy: Do not restrict the maximum pool size for backend connections
     any longer by the maximum number of threads per process and use a better
     default if mod_http2 is loaded.
+5 −6
Original line number Diff line number Diff line
@@ -550,6 +550,7 @@ static void recv_buffer_cleanup(h2_bucket_beam *beam, h2_beam_lock *bl)
        apr_brigade_destroy(bb);
        if (bl) enter_yellow(beam, bl);
        
        apr_thread_cond_broadcast(beam->change);
        if (beam->cons_ev_cb) { 
            beam->cons_ev_cb(beam->cons_ctx, beam);
        }
@@ -707,12 +708,10 @@ void h2_beam_abort(h2_bucket_beam *beam)
    h2_beam_lock bl;
    
    if (beam && enter_yellow(beam, &bl) == APR_SUCCESS) {
        if (!beam->aborted) {
        beam->aborted = 1;
        r_purge_sent(beam);
        h2_blist_cleanup(&beam->send_list);
        report_consumption(beam, &bl);
        }
        apr_thread_cond_broadcast(beam->change);
        leave_yellow(beam, &bl);
    }