Skip to content

net/http: switch default HTTP/2 write scheduler to round robin [freeze exception] #67706

Closed
@neild

Description

@neild

About a year ago, we changed the default HTTP/2 write scheduler in golang.org/x/net/http2. https://go.dev/cl/478735 and https://go.dev/issue/58804 contain context and discussion, but the quick summary is that the previous scheduler is slow, buggy, and implements a deprecated stream prioritization scheme with essentially no adoption in the wild.

Unfortunately, I missed at the time that the net/http package is explicitly enabling the priority scheduler, so changing the x/net/http2 default didn't affect the net/http defaults.

We should change the net/http default as well.

I am requesting a freeze exemption, because I'd hate for us to go another release with a bad default. All users who override the bundled HTTP/2 implementation in net/http with the one from golang.org/x/net/http2 have been getting the new default for the last year, so I believe this is a very low risk change.

CC @golang/release

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Status

    Approved

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions