Skip to content

x/net/http2: RoundTrip does not close request body after early errors #48341

Closed
@neild

Description

@neild

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions