mirror of
https://github.com/nginx/nginx.git
synced 2026-09-06 05:19:28 +00:00
HTTP/2: always handle streams in error state.
Previously, a stream could be closed by timeout if it was canceled while its send window was exhausted.
This commit is contained in:
parent
19de85a4d7
commit
da852aa468
1 changed files with 8 additions and 6 deletions
|
|
@ -1294,18 +1294,20 @@ static ngx_inline void
|
|||
ngx_http_v2_handle_stream(ngx_http_v2_connection_t *h2c,
|
||||
ngx_http_v2_stream_t *stream)
|
||||
{
|
||||
ngx_event_t *wev;
|
||||
ngx_connection_t *fc;
|
||||
|
||||
if (stream->handled || stream->blocked || stream->exhausted) {
|
||||
if (stream->handled || stream->blocked) {
|
||||
return;
|
||||
}
|
||||
|
||||
wev = stream->request->connection->write;
|
||||
fc = stream->request->connection;
|
||||
|
||||
if (!wev->delayed) {
|
||||
stream->handled = 1;
|
||||
ngx_queue_insert_tail(&h2c->posted, &stream->queue);
|
||||
if (!fc->error && (stream->exhausted || fc->write->delayed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
stream->handled = 1;
|
||||
ngx_queue_insert_tail(&h2c->posted, &stream->queue);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue