http2: on write errors, close ClientConn before returning from RoundTrip Deflakes TestTransportRoundtripCloseOnWriteError. Fixes golang/go#48995. Change-Id: I4384d9091d55307d15fbd44b1b8137dcc8939c86 Reviewed-on: https://go-review.googlesource.com/c/net/+/356029 Trust: Damien Neil <dneil@google.com> Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Go Bot <gobot@golang.org>
diff --git a/http2/transport.go b/http2/transport.go index 2ff6544..9b126ea 100644 --- a/http2/transport.go +++ b/http2/transport.go
@@ -1395,7 +1395,6 @@ if cs.ID != 0 { cc.forgetStreamID(cs.ID) } - close(cs.donec) cc.wmu.Lock() werr := cc.werr @@ -1403,6 +1402,8 @@ if werr != nil { cc.Close() } + + close(cs.donec) } // awaitOpenSlotForStream waits until len(streams) < maxConcurrentStreams.