You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TestAdaptiveImmediatePromote_Epoll (async_promote_integration_linux_test.go:73) fails on a timing it does not control.
The test asserts that the fast route /ping is never promoted. It sends /ping in a readiness loop and then once more.
A route is promoted after a single inline run longer than adaptiveBlockingThreshold (2 ms) (handler.go:186).
Under -race plus -covermode=atomic on a 4-vCPU GitHub runner, one /ping run can take longer than 2 ms. The route is then promoted, and the test fails with /ping (fast) must not be promoted.
The re-run passed: same run, attempt 2 (the failed job re-run once).
The test itself took 0.01 s, so this is a single slow run, not a hang.
--- FAIL: TestAdaptiveImmediatePromote_Epoll (0.01s)
async_promote_integration_linux_test.go:73: /ping (fast) must not be promoted
Why it is the test
The test's own premise is that one run over 2 ms promotes a route. It then requires a real handler to stay under 2 ms on every run, on a shared runner, under the race detector and coverage instrumentation.
The coverage job is informational, so this does not block merges. It will still read as a red Coverage check on unrelated pull requests.
Direction
The assertion has to hold whatever the runner's scheduling. Two options:
Summary
TestAdaptiveImmediatePromote_Epoll(async_promote_integration_linux_test.go:73) fails on a timing it does not control./pingis never promoted. It sends/pingin a readiness loop and then once more.adaptiveBlockingThreshold(2 ms) (handler.go:186).-raceplus-covermode=atomicon a 4-vCPU GitHub runner, one/pingrun can take longer than 2 ms. The route is then promoted, and the test fails with/ping (fast) must not be promoted.Observed
test-coverage.yml, root package,-race -covermode=atomic) on PR test(websocket): the backpressure oracles wait on progress and read while they wait, judge every give-up with both ends' timeline, and fail a connection the engine stops reading (celeris#633, celeris#623, celeris#611, celeris#607 class) #749, job 108686788724, run 36343065211 attempt 1.middleware/websockettest files.Why it is the test
The test's own premise is that one run over 2 ms promotes a route. It then requires a real handler to stay under 2 ms on every run, on a shared runner, under the race detector and coverage instrumentation.
The coverage job is informational, so this does not block merges. It will still read as a red Coverage check on unrelated pull requests.
Direction
The assertion has to hold whatever the runner's scheduling. Two options:
/pingmust not be promoted unless one of its runs was actually measured over the threshold.The #622 lesson applies: an absolute latency bar on a hosted runner measures the runner.