http2: deflake TestTransportRetriesOnStreamProtocolError

During this test:
  -> client sends req1
  <- server sends req1 headers
  -> client sends req2
  <- server resets req2
  <- server sends END_STREAM for req1
  -> client closes the *server* connection

The flake occurs when the last two steps happen out of order: The
client processes the reset for req2, returns from RoundTrip, and
the test closes the connection before the server writes the last
DATA frame for req1. This can be demonstrated by inserting a 1ms
sleep between WriteRSTStream and WriteData on the server side of
the test.

It isn't clear why the client side of the test is closing the server
side of the connection; it isn't essential to the test in any way.
Remove it.

Fixes golang/go#48994.

Change-Id: If074e45a76205ebd245617ef1b068967a6674b94
Reviewed-on: https://go-review.googlesource.com/c/net/+/356329
Trust: Damien Neil <dneil@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
Damien Neil
2021-10-15 12:43:53 -07:00
parent db2dff38ab
commit 4f30a5c013

View File

@@ -5460,7 +5460,6 @@ func TestTransportRetriesOnStreamProtocolError(t *testing.T) {
if got := fmt.Sprint(err); got != want {
t.Errorf("didn't dial again: got %#q; want %#q", got, want)
}
ct.sc.Close()
if res != nil {
res.Body.Close()
}