summaryrefslogtreecommitdiffhomepage
path: root/src/http/modules
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2025-12-24 22:59:40 +0400
committerSergey Kandaurov <s.kandaurov@f5.com>2026-01-29 14:52:41 +0400
commitcd12dc4f12489257e851654ec1883cf06fa0b095 (patch)
tree7bb64d3056e361b366200d34283f9ef6feafe524 /src/http/modules
parent349c72e8588c9b6f36f69b7789b3c7aac7a1bbdc (diff)
downloadnginx-cd12dc4f12489257e851654ec1883cf06fa0b095.tar.gz
nginx-cd12dc4f12489257e851654ec1883cf06fa0b095.tar.bz2
Proxy: fixed sending HTTP/2 buffered request body on next upstream.
If a buffered request body wasn't fully sent, such as on early upstream response or limited by flow control, unsent buffers could remain in the input or busy chains when switching to the next upstream server. This resulted either in the invalid request sent or a stalled connection. The fix is to reset chains similar to ngx_http_upstream_reinit().
Diffstat (limited to 'src/http/modules')
-rw-r--r--src/http/modules/ngx_http_proxy_v2_module.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/http/modules/ngx_http_proxy_v2_module.c b/src/http/modules/ngx_http_proxy_v2_module.c
index 17983a29d..f109fe94e 100644
--- a/src/http/modules/ngx_http_proxy_v2_module.c
+++ b/src/http/modules/ngx_http_proxy_v2_module.c
@@ -944,6 +944,8 @@ ngx_http_proxy_v2_reinit_request(ngx_http_request_t *r)
ctx->rst = 0;
ctx->goaway = 0;
ctx->connection = NULL;
+ ctx->in = NULL;
+ ctx->busy = NULL;
return NGX_OK;
}