Skip to content

net/http: access to written data after ResponseWriter.Write returns #58446

Closed
@neild

Description

@neild

The HTTP/2 ResponseWriter can access the contents of the slice passed to Write after Write returns.

  • When closing a stream while a write is in progress.
  • When shutting down the server while a write is in progress.

This is a violation of the io.Writer contract, and responsible for a number of recent net/http flakes.

Activity

added
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.
on Feb 9, 2023
gopherbot

gopherbot commented on Feb 9, 2023

@gopherbot
Contributor

Change https://go.dev/cl/467055 mentions this issue: http2: wait for in-progress writes after a stream is closed

gopherbot

gopherbot commented on Feb 10, 2023

@gopherbot
Contributor

Change https://go.dev/cl/467355 mentions this issue: http2: avoid referencing ResponseWrite.Write parameter after returning

gopherbot

gopherbot commented on Feb 13, 2023

@gopherbot
Contributor

Change https://go.dev/cl/467657 mentions this issue: all: update vendored golang.org/x/net

added
NeedsFixThe path to resolution is known, but the work has not been done.
and removed
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.
on Feb 13, 2023
added this to the Go1.21 milestone on Feb 13, 2023
locked and limited conversation to collaborators on Feb 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @neild@dmitshur@dr2chase@gopherbot

        Issue actions

          net/http: access to written data after ResponseWriter.Write returns · Issue #58446 · golang/go