]> git.kaiwu.me - nginx.git/commit
HTTP/2: send WINDOW_UPDATE instead of RST_STREAM with NO_ERROR.
authorValentin Bartenev <vbart@nginx.com>
Thu, 14 Apr 2016 12:14:15 +0000 (15:14 +0300)
committerValentin Bartenev <vbart@nginx.com>
Thu, 14 Apr 2016 12:14:15 +0000 (15:14 +0300)
commit7691b9750e0d3a2137e9d9188db65f7e39624b97
tree5e958ea51ce2d12acbec063a3f89a3b90f5b413b
parent536b5510d1051281bd9411723102333e6d1dbdf2
HTTP/2: send WINDOW_UPDATE instead of RST_STREAM with NO_ERROR.

After the 92464ebace8e change, it has been discovered that not all
clients follow the RFC and handle RST_STREAM with NO_ERROR properly.

Notably, Chrome currently interprets it as INTERNAL_ERROR and discards
the response.

As a workaround, instead of RST_STREAM the maximum stream window update
will be sent, which will let client to send up to 2 GB of a request body
data before getting stuck on flow control.  All the received data will
be silently discarded.

See for details:
http://mailman.nginx.org/pipermail/nginx-devel/2016-April/008143.html
https://bugs.chromium.org/p/chromium/issues/detail?id=603182
src/http/v2/ngx_http_v2.c