Closed
Description
#!watchflakes
post <- pkg == "net/http" && test ~ `TestRequestLimit` && status == "ABORT"
I've initially observed this on various builders, most often linux-386 ones, but it seems to reproduce on darwin/arm64
too.
At tip without x/net@v0.23.0 (e.g., commit 61a3ee5), TestRequestLimit/h2
consistently passes in under a second:
$ go test -count=1 net/http -v -run=^TestRequestLimit$
=== RUN TestRequestLimit
=== RUN TestRequestLimit/h1
=== RUN TestRequestLimit/h2
--- PASS: TestRequestLimit (0.14s)
--- PASS: TestRequestLimit/h1 (0.06s)
--- PASS: TestRequestLimit/h2 (0.08s)
PASS
ok net/http 0.491s
$ go test -count=1 net/http -run=^TestRequestLimit$
ok net/http 0.442s
$ go test -count=1 net/http -run=^TestRequestLimit$
ok net/http 0.395s
$ go test -count=1 net/http -run=^TestRequestLimit$
ok net/http 0.425s
When x/net@v0.23.0 is pulled in (e.g., CL 576295), it takes anywhere between 15 seconds and 200+ seconds:
$ go test -count=1 net/http -v -run=^TestRequestLimit$
=== RUN TestRequestLimit
=== RUN TestRequestLimit/h1
=== RUN TestRequestLimit/h2
--- PASS: TestRequestLimit (14.94s)
--- PASS: TestRequestLimit/h1 (0.06s)
--- PASS: TestRequestLimit/h2 (14.88s)
PASS
ok net/http 15.327s
$ go test -count=1 net/http -v -run=^TestRequestLimit$
=== RUN TestRequestLimit
=== RUN TestRequestLimit/h1
=== RUN TestRequestLimit/h2
--- PASS: TestRequestLimit (266.59s)
--- PASS: TestRequestLimit/h1 (0.06s)
--- PASS: TestRequestLimit/h2 (266.52s)
PASS
ok net/http 266.886s
$ go test -count=1 net/http -v -run=^TestRequestLimit$
=== RUN TestRequestLimit
=== RUN TestRequestLimit/h1
=== RUN TestRequestLimit/h2
--- PASS: TestRequestLimit (205.00s)
--- PASS: TestRequestLimit/h1 (0.05s)
--- PASS: TestRequestLimit/h2 (204.95s)
PASS
ok net/http 205.313s
I'm seeing around 125% CPU usage while this one test runs. This seems to cause it to exceed the 180 second timeout on some builders, especially when running all other tests and not just this one.
CC @neild.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status