-
Notifications
You must be signed in to change notification settings - Fork 23
Stop the ASAN lane reporting contention as a hang #347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
+65
−18
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: The mark is a single load snapshot taken before the test starts, so the retry decision still misses the exact case this PR targets: contention that begins after the mark, mid-run (e.g. a neighbor job or build starting while the test is in flight), and decays below the threshold before the post-timeout check. That spike is invisible to the start snapshot and, once decayed, also fails the
|| test_host_is_busyhalf, so rc==124 is reported as a hang with no retry. For a now-60s ASAN test the start reading is increasingly stale by watchdog time. Sample the load again during the timed region (not only at the start) so a spike that arrives after the mark is still captured.Prompt for AI agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Declining the mid-run sample, with the arithmetic.
For the gap to be real, a spike has to start after the mark and decay below
the threshold before the check. The 1-minute average has a 60s time constant,
so crossing back under the threshold takes roughly 24s of decay from 1.5x the
threshold, 42s from 2x, 66s from 3x. Inside a 60s watchdog that places the end
of the spike at or before the mark, which is precisely the case the mark was
added for. A spike brief enough to hide from both readings is also too brief
to have consumed the headroom the test had left.
The reasoning now sits in the comment above the pair in
tests/lib/bash-compat.sh so the next reader does not have to redo it.
Reviewing this did turn up a real error, though in the commit message rather
than the code. The body claimed the change closed run 33440761454. It does
not: under the 30s watchdog in force on that run, the mark and the check
average over windows that overlap by half, so the mark would most likely have
agreed with the check. The cap raised in f925a43 is the fix for that run, and
this is a second gap found beside it. Corrected in c22431d.