[nginx] SPDY: drop the "delayed" flag when finalizing connection.

Valentin Bartenev vbart at nginx.com
Tue Dec 10 17:13:32 UTC 2013


details:   http://hg.nginx.org/nginx/rev/a279d2a33dbf
branches:  
changeset: 5465:a279d2a33dbf
user:      Valentin Bartenev <vbart at nginx.com>
date:      Tue Dec 10 20:27:33 2013 +0400
description:
SPDY: drop the "delayed" flag when finalizing connection.

This flag in SPDY fake write events serves the same purposes as the "ready"
flag in real events, and it must be dropped if request needs to be handled.
Otherwise, it can prevent the request from finalization if ngx_http_writer()
was set, which results in a connection leak.

Found by Xiaochen Wang.

diffstat:

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

diffs (13 lines):

diff -r 30e806b8636a -r a279d2a33dbf src/http/ngx_http_spdy.c
--- a/src/http/ngx_http_spdy.c	Mon Dec 09 10:16:44 2013 +0400
+++ b/src/http/ngx_http_spdy.c	Tue Dec 10 20:27:33 2013 +0400
@@ -2855,7 +2855,9 @@ ngx_http_spdy_finalize_connection(ngx_ht
             if (stream->waiting) {
                 r->blocked -= stream->waiting;
                 stream->waiting = 0;
+
                 ev = fc->write;
+                ev->delayed = 0;
 
             } else {
                 ev = fc->read;



More information about the nginx-devel mailing list