You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The RoundTrip contract states that the request body should be closed by RoundTrip, even when an error occurs.
The HTTP/2 RoundTrip does not close the request body in various situations:
If the request is invalid: transport.go#1011 and in subsequent failures early in request processing.
If an open slot cannot be acquired on the selected ClientConn: transport.go#1026
If a new request body is acquired from GetBody: transport.go#550 (While the exact handling of bodies created by GetBody is not fully documented, the HTTP/1 RoundTrip implementation closes both the original Request.Body and every body returned by Request.GetBody.)
The text was updated successfully, but these errors were encountered:
The RoundTrip contract requires that the request Body be closed,
even when an error occurs sending the request.
Fix several cases where the body was not closed by hoisting the
Close call to Transport.RoundTripOpt. Now ClientConn.roundTrip
takes responsibility for closing the body once the body write
begins; otherwise, the caller does so.
Fix the case where a new body is acquired via Request.GetBody
to close the previous body, matching net/http's behavior.
Fixesgolang/go#48341.
Change-Id: Id9dc682d4d86a1c255c7c0d864208ff76ed53eb2
Reviewed-on: https://go-review.googlesource.com/c/net/+/349489
Trust: Damien Neil <[email protected]>
Run-TryBot: Damien Neil <[email protected]>
Reviewed-by: Brad Fitzpatrick <[email protected]>
The
RoundTrip
contract states that the request body should be closed byRoundTrip
, even when an error occurs.The HTTP/2
RoundTrip
does not close the request body in various situations:ClientConn
: transport.go#1026GetBody
: transport.go#550 (While the exact handling of bodies created byGetBody
is not fully documented, the HTTP/1RoundTrip
implementation closes both the originalRequest.Body
and every body returned byRequest.GetBody
.)The text was updated successfully, but these errors were encountered: