Skip to content

net/http: deflake HTTP/3 tests #78737

@nicholashusin

Description

@nicholashusin

We recently enabled net/http tests for our internal x/net/internal/http3 implementation in https://go.dev/cl/765320. Unfortunately, the tests end up being flaky.

The flakes seem to be mostly coming from the following issues, in order of most to least prevalent (though there might be more):

  1. QUIC connections are not shutdown fast enough during test cleanup, causing them to be detected as goroutine leaks.
  2. x/net/quic has a race condition where its output buffer are written to without locks (synchronously and intentionally, for optimization), but may be asynchronously written when the QUIC stream receives a STOP_SENDING frame.
  3. Similar to 2., but for input buffer, with data race between reading and closing the stream.
  4. Handshake timeout for unknown reasons when trying to establish TLS connection.

The HTTP/3 tests have therefore been temporarily disabled for now (https://go.dev/cl/766740). This is a bug to track the actual fix and to dedupe the many watchflake issues that were opened.

Metadata

Metadata

Assignees

Labels

BugReportIssues describing a possible bug in the Go implementation.NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.early-in-cycleA change that should be done early in the 3 month dev cycle.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions