HTTP/2: fixed stream finalization.

In order to finalize stream the error flag is set on fake connection and
either "write" or "read" event handler is called.  The read events of fake
connections are always ready, but it's not the case with the write events.

When the ready flag isn't set, the error flag can be not checked in some
cases and as a result stream isn't finalized.  Now the ready flag is
explicilty set on write events for proper finalization in all cases.
This commit is contained in:
Valentin Bartenev 2017-03-29 20:16:23 +03:00
parent 239e5ac063
commit e825598266

View File

@ -4266,7 +4266,10 @@ ngx_http_v2_finalize_connection(ngx_http_v2_connection_t *h2c,
if (stream->queued) {
stream->queued = 0;
ev = fc->write;
ev->active = 0;
ev->ready = 1;
} else {
ev = fc->read;