diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go index 9f2f751a1a..68c05d559c 100644 --- a/src/net/http/h2_bundle.go +++ b/src/net/http/h2_bundle.go @@ -5267,8 +5267,16 @@ func (t *http2Transport) NewClientConn(c net.Conn) (*http2ClientConn, error) { func (cc *http2ClientConn) setGoAway(f *http2GoAwayFrame) { cc.mu.Lock() defer cc.mu.Unlock() + + old := cc.goAway cc.goAway = f - cc.goAwayDebug = string(f.DebugData()) + + if cc.goAwayDebug == "" { + cc.goAwayDebug = string(f.DebugData()) + } + if old != nil && old.ErrCode != http2ErrCodeNo { + cc.goAway.ErrCode = old.ErrCode + } } func (cc *http2ClientConn) CanTakeNewRequest() bool {