mirror of
https://github.com/nginx/nginx.git
synced 2024-12-19 13:43:28 -06:00
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.
This commit is contained in:
parent
cf48794407
commit
2aa6d7fd65
@ -4068,7 +4068,8 @@ ngx_http_upstream_finalize_request(ngx_http_request_t *r,
|
|||||||
|
|
||||||
if (!u->header_sent
|
if (!u->header_sent
|
||||||
|| rc == NGX_HTTP_REQUEST_TIME_OUT
|
|| 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);
|
ngx_http_finalize_request(r, rc);
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user