diff options
author | Roman Arutyunyan <arut@nginx.com> | 2025-01-07 21:14:58 +0400 |
---|---|---|
committer | Roman Arutyunyan <arutyunyan.roman@gmail.com> | 2025-04-15 19:01:36 +0400 |
commit | 3a97111adfb6e538ddef1828bbf04a35a8915c1f (patch) | |
tree | c9d886995a421e682501e02a37eb6b3a809232bb | |
parent | 2b8b70068a7f7b800ec23390cd2da01b5b91b25f (diff) | |
download | nginx-3a97111adfb6e538ddef1828bbf04a35a8915c1f.tar.gz nginx-3a97111adfb6e538ddef1828bbf04a35a8915c1f.zip |
HTTP/3: graceful shutdown on keepalive timeout expiration.
Previously, the expiration caused QUIC connection finalization even if
there are application-terminated streams finishing sending data. Such
finalization terminated these streams.
An easy way to trigger this is to request a large file from HTTP/3 over
a small MTU. In this case keepalive timeout expiration may abruptly
terminate the request stream.
-rw-r--r-- | src/http/v3/ngx_http_v3.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/http/v3/ngx_http_v3.c b/src/http/v3/ngx_http_v3.c index 8db229b29..d8597ec5c 100644 --- a/src/http/v3/ngx_http_v3.c +++ b/src/http/v3/ngx_http_v3.c @@ -70,7 +70,7 @@ ngx_http_v3_keepalive_handler(ngx_event_t *ev) ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http3 keepalive handler"); - ngx_http_v3_finalize_connection(c, NGX_HTTP_V3_ERR_NO_ERROR, + ngx_http_v3_shutdown_connection(c, NGX_HTTP_V3_ERR_NO_ERROR, "keepalive timeout"); } |