Repository navigation
test(runner/toolexec): check the hang and order rows end to end - #581
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
hmdsefi
force-pushed
the
plan/2.5-task-10a
branch
from
November 1, 2026 02:37
e7d8b9f to
3c55eff
Compare
hmdsefi
force-pushed
the
plan/2.5-task-10b
branch
from
November 1, 2026 02:46
5b98eb6 to
9df1476
Compare
14 tasks done
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.
Adds end-to-end tests for the hang and order rows, and makes
AfterFunccallbacks that fire at the same instant replay. Stacked on #580.hangs): processes that hang or lose their order without the rewrite finish for every seed, with equal outcomes across two runs. The constructs are aCondwith a rewritten mutex,sync.Lockercalls, a mutex method value passed to a helper,OnceFuncfrom three goroutines,WaitGroup.Go, atime.AfterFunccallback that locks a mutex, and aruntime.Goschedspin. Each fixture also checks that its own log is complete.orders): struct-keyed and bool-keyed map ranges,maps.All, arand.Intnfunction value,rand.Nandreflect.Selectfollow the seed: equal outcomes per seed and at least two outcomes per construct.sched:Funcnow numbers each callback when it is registered. Callbacks that fire at the same instant wait in a list thatPending, the driver'sLockandResettake into account, andReleasestarts the lowest number first, one per call, without drawing from the release stream. Before this, the runtime started same-instant timer callbacks in a random order, andcontext.AfterFunccallbacks in the map order of the cancelled context's children, so one seed could give different goroutine orders. Programs without such callbacks take the old path, so existing traces do not change.runSeedskeeps the trailing space of the last seed's outcome. It used to trim it, which could make one outcome look like two.Closes #346