details: http://hg.nginx.org/nginx/rev/9fffc0c46e5c branches: changeset: 5512:9fffc0c46e5c user: Valentin Bartenev <vb...@nginx.com> date: Tue Jan 14 16:24:45 2014 +0400 description: SPDY: fixed possible premature close of stream.
The "delayed" flag always should be set if there are unsent frames, but this might not be the case if ngx_http_spdy_body_filter() was called with NULL chain. As a result, the "send_timeout" timer could be set on a stream in ngx_http_writer(). And if the timeout occurred before all the stream data has been sent, then the request was finalized with the "client timed out" error. diffstat: src/http/ngx_http_spdy_filter_module.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (11 lines): diff -r dfb52d25cefb -r 9fffc0c46e5c src/http/ngx_http_spdy_filter_module.c --- a/src/http/ngx_http_spdy_filter_module.c Tue Jan 14 16:24:45 2014 +0400 +++ b/src/http/ngx_http_spdy_filter_module.c Tue Jan 14 16:24:45 2014 +0400 @@ -635,6 +635,7 @@ ngx_http_spdy_body_filter(ngx_http_reque if (in == NULL || r->header_only) { if (stream->queued) { + fc->write->delayed = 1; return NGX_AGAIN; } _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel