<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hi<div>  We noticed that the Http2 idle flag (<a href="https://github.com/nginx/nginx/blob/master/src/http/v2/ngx_http_v2.h#L126">https://github.com/nginx/nginx/blob/master/src/http/v2/ngx_http_v2.h#L126</a>) is initialized to `1` (<a href="https://github.com/nginx/nginx/blob/master/src/http/v2/ngx_http_v2.c#L335">https://github.com/nginx/nginx/blob/master/src/http/v2/ngx_http_v2.c#L335</a>) but not reset by  the http2 state machine. It also looks like Nginx does not set keep alive timer for http2 as the keep alive setter code path is short circuited for http2 (<a href="https://github.com/nginx/nginx/blob/master/src/http/ngx_http_request.c#L2706">https://github.com/nginx/nginx/blob/master/src/http/ngx_http_request.c#L2706</a>). </div><div><br></div><div>  During worker shutdown when idle connections are reaped (<a href="https://github.com/nginx/nginx/blob/master/src/core/ngx_connection.c#L1363">https://github.com/nginx/nginx/blob/master/src/core/ngx_connection.c#L1363</a>), due to the fact that http2 connections are always `idle`,  ongoing streams end up prematurely getting closed on the read side(sends GOAWAY frame). </div><div><br></div><div>It looks like the `idle` connection implementation as it is today only answers the question - “Can nginx prematurely close the streams when shutting down?” <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">  Is the above behavior intentional?</span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"> </span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><font color="#000000">It appears from the name of the flag (`idle`) that the intent is to reflect the dynamic state of the connection (are reads and writes happening for the connection for any of the streams) but the implementation does not reflect that.</font></div><div><font color="#000000"><br></font></div><div><font color="#000000">What is the intended behavior ? We would have liked a `idle` flag with its corresponding timeout configuration that lets us control the behavior during shutdown (and other flows).</font></div><div><font color="#000000"><br></font></div><div><font color="#000000"><br></font></div><div><font color="#000000">Thanks in advance</font></div><div><font color="#000000"><br></font></div><div><font color="#000000">Jojy</font></div></body></html>