On 11/4/21 10:42 AM, icing@apache.org wrote:
> Author: icing
> Date: Thu Nov 4 09:42:45 2021
> New Revision: 1894728
>
> URL: http://svn.apache.org/viewvc?rev=1894728&view=rev
> Log:
> * mod_http2: a regression in v1.15.24 of the modules was fixed that
> could lead to httpd child processes not being terminated on a
> graceful reload or when reaching MaxConnectionsPerChild.
> When unprocessed h2 requests were queued at the time, these could stall.
> See <https://github.com/icing/mod_h2/issues/212>.
> [@hansborr, @famzah, Stefan Eissing]
>
>
> Added:
> httpd/httpd/trunk/changes-entries/h2_graceful_stall.txt
> Modified:
> httpd/httpd/trunk/modules/http2/h2_session.c
> httpd/httpd/trunk/modules/http2/h2_workers.c
>
> Modified: httpd/httpd/trunk/modules/http2/h2_workers.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_workers.c?rev=1894728&r1=1894727&r2=1894728&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/http2/h2_workers.c (original)
> +++ httpd/httpd/trunk/modules/http2/h2_workers.c Thu Nov 4 09:42:45 2021
> @@ -461,8 +461,6 @@ apr_status_t h2_workers_unregister(h2_wo
> void h2_workers_graceful_shutdown(h2_workers *workers)
> {
> workers->shutdown = 1;
> - workers->min_workers = 1;
Isn't this needed to ensure that all idle workers are shutdown?
It is used in h2_fifo_term and wake_non_essential_workers.
> workers->max_idle_duration = apr_time_from_sec(1);
> - h2_fifo_term(workers->mplxs);
Why is this no longer needed? Is wake_non_essential_workers below enough?
> wake_non_essential_workers(workers);
> }
>
Regards
Rüdiger
> Author: icing
> Date: Thu Nov 4 09:42:45 2021
> New Revision: 1894728
>
> URL: http://svn.apache.org/viewvc?rev=1894728&view=rev
> Log:
> * mod_http2: a regression in v1.15.24 of the modules was fixed that
> could lead to httpd child processes not being terminated on a
> graceful reload or when reaching MaxConnectionsPerChild.
> When unprocessed h2 requests were queued at the time, these could stall.
> See <https://github.com/icing/mod_h2/issues/212>.
> [@hansborr, @famzah, Stefan Eissing]
>
>
> Added:
> httpd/httpd/trunk/changes-entries/h2_graceful_stall.txt
> Modified:
> httpd/httpd/trunk/modules/http2/h2_session.c
> httpd/httpd/trunk/modules/http2/h2_workers.c
>
> Modified: httpd/httpd/trunk/modules/http2/h2_workers.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_workers.c?rev=1894728&r1=1894727&r2=1894728&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/http2/h2_workers.c (original)
> +++ httpd/httpd/trunk/modules/http2/h2_workers.c Thu Nov 4 09:42:45 2021
> @@ -461,8 +461,6 @@ apr_status_t h2_workers_unregister(h2_wo
> void h2_workers_graceful_shutdown(h2_workers *workers)
> {
> workers->shutdown = 1;
> - workers->min_workers = 1;
Isn't this needed to ensure that all idle workers are shutdown?
It is used in h2_fifo_term and wake_non_essential_workers.
> workers->max_idle_duration = apr_time_from_sec(1);
> - h2_fifo_term(workers->mplxs);
Why is this no longer needed? Is wake_non_essential_workers below enough?
> wake_non_essential_workers(workers);
> }
>
Regards
Rüdiger