Welcome! Log In Create A New Profile

Advanced

Re: [PATCH] HTTP/2: fixed premature connection closure during reload (ticket #626).

Valentin V. Bartenev
December 17, 2015 08:40AM
On Wednesday 02 December 2015 18:40:03 Wai Keen Woon wrote:
> # HG changeset patch
> # User Wai Keen Woon <waikeen.woon@onapp.com>
> # Date 1449052722 -28800
> # Wed Dec 02 18:38:42 2015 +0800
> # Node ID 4b7ef34610ebe00eb6a6d52008a48f9864dadd33
> # Parent be3aed17689c0edd36c2025ff5c36fe493b68bd7
> HTTP/2: fixed premature connection closure during reload (ticket #626).
>
> HTTP/2 transfers may be closed prematurely during nginx reload, which logs
> "open socket #X left in connection Y" alerts.
>
> ngx_add_timer() isn't called when frames are sent faster than they can be
> created. The worker process therefore exits because there are no more timers
> scheduled, even though there are more data frames and finalization
> forthcoming.
>
> diff -r be3aed17689c -r 4b7ef34610eb src/http/v2/ngx_http_v2.c
> --- a/src/http/v2/ngx_http_v2.c Wed Dec 02 01:06:54 2015 +0300
> +++ b/src/http/v2/ngx_http_v2.c Wed Dec 02 18:38:42 2015 +0800
> @@ -535,7 +535,7 @@
> c->tcp_nodelay = NGX_TCP_NODELAY_SET;
> }
>
> - if (cl) {
> + if (cl || h2c->processing) {
> ngx_add_timer(wev, clcf->send_timeout);
>
> } else {
>
[..]

This is completely wrong approach to solve the issue. For example, with
your patch the send timeout will be triggered in cases while nginx is
waiting for backend, or delaying request with limit_req, or resolving
an address.

Please try the attached patch instead.

wbr, Valentin V. Bartenev
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH] HTTP/2: fixed premature connection closure during reload (ticket #626).

Wai Keen Woon 571 December 02, 2015 05:42AM

Re: [PATCH] HTTP/2: fixed premature connection closure during reload (ticket #626).

Valentin V. Bartenev 232 December 17, 2015 08:40AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 210
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready