http2: remove check for read-after-close of request bodies

Aborting a request currently races with writes of the request
body, so abortRequestBodyWrite can close the body before writeRequestBody
reads from it.

Fixes golang/go#48555.

Change-Id: I5362283f4066611aeecbc48b400d79cfa0b4b284
Reviewed-on: https://go-review.googlesource.com/c/net/+/351972
Trust: Damien Neil <dneil@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Damien Neil
2021-09-23 17:40:47 -07:00
parent cf34111cab
commit 3ad01bbaa1

View File

@@ -4969,7 +4969,10 @@ func (rc *closeChecker) Read(b []byte) (n int, err error) {
select {
default:
case <-rc.closed:
panic("read from closed body")
// TODO(dneil): Consider restructuring the request write to avoid reading
// from the request body after closing it, and check for read-after-close here.
// Currently, abortRequestBodyWrite races with writeRequestBody.
return 0, errors.New("read after Body.Close")
}
return rc.ReadCloser.Read(b)
}