flaky: a BlazorAdapter test fails under parallel load and passes in isolation #83
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What's known
While reviewing PR #82, Jibril reported:
That is the entire evidence. The test was not named, and the failure output was not captured.
What I could not establish
I tried to reproduce before writing this, and failed:
dotnet test tests/Orihon.BlazorAdapter.Testsin isolation — 193/193 green each timedotnet test(all four projects, which run in parallel) with all 8 cores saturated by busy loops — green each timeSo the first job on this issue is catching it, not fixing it. Anyone picking this up should assume the test name is unknown.
How to catch it
The suite prints the failing test name to stdout, but a passing run tells you nothing, so it needs a loop that preserves the failure:
Run it with the machine loaded (the reported condition), and keep the
.trx— it carries the assertion message and the render counts, which is what distinguishes a genuine timing bug from a too-short bUnit timeout.Where to look
WaitForAssertion/WaitForStatesites. The reported symptom — passes alone, fails under load — is the signature of a wait whose default timeout (1s) is too short when the renderer is competing for CPU, rather than of a wrong assertion.SettingsPageTests,RunMonitorTestsandPageWorkspacePageTestsare the heaviest users.Debounceplus a real timer is the other classic source; see theverify-editors-with-real-inputlesson.mainbefore blaming a branch, which applies to this too.Why it matters
A flake that nobody can name is worse than a red test: every future PR review has to decide whether an unexplained BlazorAdapter failure is "the known flake" or a real regression, and the honest answer is currently "nobody can tell". That judgement call is the actual cost here, not the seconds of CI time.
Not urgent
mainis green, and this does not block anything. It wants doing before someone starts trusting a red BlazorAdapter run as noise.🤖 Generated with Claude Code