Repository navigation
fix(ci): stop fixed startup and read budgets failing wire-server tests on a busy host (CHE-2010) [squash] - #228
Merged
Conversation
…s on a busy host (CHE-2010)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cause
mainrun39937569028(and PR #225 run39941796520) failed at fixture setup oftest_real_host_socket_close_enters_grace_and_expires_once[websocket]: thewire_serverfixture waited a fixed 5 s for uvicorn to report ready. The failing step is the reverse-order unit run. Its log shows 10 s to 2 min gaps between 72-test lines before the error, so the host was heavily loaded. A fixed wall-clock deadline measures host load, not the server. Same class as CHE-1975 (#227). The 1 s and 2 s loopback waits in the same file have the same flaw.No regression: the same test passes alone and in a full local reverse-order unit run (6021 passed, 12 skipped, Python 3.13). The CI failure was not reproduced under 3x CPU load either, so the cause is inferred from the CI log plus the deterministic reproduction below.
Fix
tests/unit/admin_console/test_host_agent_api.pyonly:STALL_BOUND = 60, which only stops a stalled test from hanging.Test-first evidence
Throwaway probe (not committed):
uvicorn.Server.startupdelayed 6 s, then thewire_serverfixture.ERROR ... test_probe - TimeoutError(1 error in 6.76s), same traceback as CI (wait_for(ready.wait(), 5)raisesTimeoutError).1 passed in 6.52s.Target file after the fix:
57 passed.ruff checkandruff format --checkpass.Exact-head CI: PASS on
d0caab9(push run39955316195, PR run39955329787, all 7 checks; reverse-order suite6018 passed, 15 skipped).Independent review: PASS, x99-codex-sol (OpenAI), head
d0caab9, basemaincfc51c4.