From: Roman Arutyunyan Date: Tue, 8 Dec 2015 14:39:56 +0000 (+0300) Subject: Slice filter: never run subrequests when main request is buffered. X-Git-Tag: release-1.9.8~2 X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=5c1f76f0e933335784ebb4811965230ab8f20233;p=nginx.git Slice filter: never run subrequests when main request is buffered. With main request buffered, it's possible, that a slice subrequest will send output before it. For example, while main request is waiting for aio read to complete, a slice subrequest can start an aio operation as well. The order in which aio callbacks are called is undetermined. --- diff --git a/src/http/modules/ngx_http_slice_filter_module.c b/src/http/modules/ngx_http_slice_filter_module.c index 8cdb9bc6f..aa2a0344c 100644 --- a/src/http/modules/ngx_http_slice_filter_module.c +++ b/src/http/modules/ngx_http_slice_filter_module.c @@ -239,6 +239,10 @@ ngx_http_slice_body_filter(ngx_http_request_t *r, ngx_chain_t *in) return rc; } + if (r->buffered) { + return rc; + } + if (ngx_http_subrequest(r, &r->uri, &r->args, &sr, NULL, 0) != NGX_OK) { return NGX_ERROR; }