http2: fix over-aggressive ignoring of frames while in "go away" mode
https://golang.org/cl/31727 made many of the Server Frame processors ignore incoming frames if the connection was in shutdown mode. The idea was that it's pointless to do work if we're about to hang up on them in 250ms anyway for violating a protocol error. But as of https://golang.org/cl/32412 (graceful shutdown) we can also be in "go away" mode for ErrCodeNo, which just means to nicely tell them to GOAWAY and because they did nothing wrong, we don't hang up in 250ms (the value of which gave the peer time to read the error before the TCP close), but instead we keep the conn open until it's idle. The combination of the two CLs made TestTransportAndServerSharedBodyRace_h2 flaky, since it was never seeing RST_STREAM on cancelation of requests, and then Handlers would block forever. Updates golang/go#17733 (fixes after bundle into std) Change-Id: I67491c1d7124bc3cb554f9246ea7683f20b6a4e3 Reviewed-on: https://go-review.googlesource.com/32583 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
Showing
Please
register
or
sign in
to comment