commit | 39120d07d75e76f0079fe5d27480bcb965a21e4c | [log] [tgz] |
---|---|---|
author | Ashish Bhate <ab.listsubs@gmail.com> | Mon Jun 15 20:49:29 2020 +0530 |
committer | Emmanuel Odeke <emmanuel@orijtech.com> | Fri Feb 26 10:14:13 2021 +0000 |
tree | 8dc27e96f901d9a50a38b0f558eec352651ae33a | |
parent | 3d97a244fca747f9caeab9b98aa4302e662fb37b [diff] |
http2: discard DATA frames with higher stream IDs during graceful shutdown If the server sends a GOAWAY at the same time that a client sends HEADERS+DATA, the server will discard the HEADERS, but error on the DATA frame. Luckily, the server doesn't turn this into a connection error because it's already in a GOAWAY state. It just logs the PROTOCOL_ERROR, but that produces a confusing log message. This change effectively suppresses the log message by discarding the DATA frame rather than erroring on it. Also, we now discard any frames for streams with identifiers higher than the identified last stream. This is done as per section 6.8 of the HTTP2 spec. I also updated some stale documentation while I was trying to understand the logic. This is CL 188360 with a test Fixes golang/go#32112 Co-authored-by: Yunchi Luo <mightyguava@gmail.com> Co-authored-by: Michael Fraenkel <michael.fraenkel@gmail.com> Change-Id: I612c2bd82e37551e813af0961b16a98d14e77c38 Reviewed-on: https://go-review.googlesource.com/c/net/+/237957 Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com> Run-TryBot: Emmanuel Odeke <emmanuel@orijtech.com> Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: Damien Neil <dneil@google.com>
This repository holds supplementary Go networking libraries.
The easiest way to install is to run go get -u golang.org/x/net
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.