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>
This commit is contained in:
Damien Neil
2021-10-14 15:07:30 -07:00
parent 2b766c08f1
commit fd004c51d1

View File

@@ -1395,7 +1395,6 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
if cs.ID != 0 {
cc.forgetStreamID(cs.ID)
}
close(cs.donec)
cc.wmu.Lock()
werr := cc.werr
@@ -1403,6 +1402,8 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
if werr != nil {
cc.Close()
}
close(cs.donec)
}
// awaitOpenSlotForStream waits until len(streams) < maxConcurrentStreams.