Welcome! Log In Create A New Profile

Advanced

[nginx] Upstream: fixed "zero size buf" alerts with cache (ticket #918).

Maxim Dounin
March 10, 2016 02:06PM
details: http://hg.nginx.org/nginx/rev/ad3f342f14ba
branches:
changeset: 6427:ad3f342f14ba
user: Maxim Dounin <mdounin@mdounin.ru>
date: Thu Mar 10 21:58:03 2016 +0300
description:
Upstream: fixed "zero size buf" alerts with cache (ticket #918).

If caching was used, "zero size buf in output" alerts might appear
in logs if a client prematurely closed connection. Alerts appeared
in the following situation:

- writing to client returned an error, so event pipe
drained all busy buffers leaving body output filters
in an invalid state;

- when upstream response was fully received,
ngx_http_upstream_finalize_request() tried to flush
all pending data.

Fix is to avoid flushing body if p->downstream_error is set.

diffstat:

src/http/ngx_http_upstream.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -4068,7 +4068,8 @@ ngx_http_upstream_finalize_request(ngx_h

if (!u->header_sent
|| rc == NGX_HTTP_REQUEST_TIME_OUT
- || rc == NGX_HTTP_CLIENT_CLOSED_REQUEST)
+ || rc == NGX_HTTP_CLIENT_CLOSED_REQUEST
+ || (u->pipe && u->pipe->downstream_error))
{
ngx_http_finalize_request(r, rc);
return;

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Upstream: fixed "zero size buf" alerts with cache (ticket #918).

Maxim Dounin 422 March 10, 2016 02:06PM



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

Online Users

Guests: 153
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