]> git.kaiwu.me - nginx.git/commitdiff
SPDY: alert about activated fake events instead of deleting them.
authorValentin Bartenev <vbart@nginx.com>
Thu, 15 Aug 2013 15:16:12 +0000 (19:16 +0400)
committerValentin Bartenev <vbart@nginx.com>
Thu, 15 Aug 2013 15:16:12 +0000 (19:16 +0400)
They refer to the same socket descriptor as our real connection, and
deleting them will stop processing of the connection.

Events of fake connections must not be activated, and if it happened there
is nothing we can do.  The whole processing should be terminated as soon as
possible, but it is not obvious how to do this safely.

src/http/ngx_http_spdy.c

index 8522c6d0a68036e34c349e195feccd2a11625e4d..e7bebccd5ae8a3afd63cc4bae3e7e5d4a616ec84 100644 (file)
@@ -2663,7 +2663,8 @@ ngx_http_spdy_close_stream(ngx_http_spdy_stream_t *stream, ngx_int_t rc)
     ev = fc->read;
 
     if (ev->active || ev->disabled) {
-        ngx_del_event(ev, NGX_READ_EVENT, 0);
+        ngx_log_error(NGX_LOG_ALERT, sc->connection->log, 0,
+                      "spdy fake read event was activated");
     }
 
     if (ev->timer_set) {
@@ -2677,7 +2678,8 @@ ngx_http_spdy_close_stream(ngx_http_spdy_stream_t *stream, ngx_int_t rc)
     ev = fc->write;
 
     if (ev->active || ev->disabled) {
-        ngx_del_event(ev, NGX_WRITE_EVENT, 0);
+        ngx_log_error(NGX_LOG_ALERT, sc->connection->log, 0,
+                      "spdy fake write event was activated");
     }
 
     if (ev->timer_set) {