fix(tests): scale daemon runtime sanitizer timeout - #1742
Conversation
Signed-off-by: Brian McNaboe <bmcnaboe@gmail.com>
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
The gate waited 90 x 30s = 45 min for CodeQL to finish on the PR head. That is shorter than CodeQL actually takes on this repository, so the gate has been failing runs that had not failed. Measured on PR DeusData#1426, head 7b72652: the CodeQL SAST workflow completed with conclusion=success at 17:46:05, having started at 15:41:44 -- 124 minutes. The gate step ran 16:52:58 to 17:38:44 and reported "BLOCKED: CodeQL timeout" 7 minutes and 21 seconds before the scan it was waiting for succeeded. Two open contributor pull requests are red from exactly this: DeusData#1426 and DeusData#1769, both with CodeQL completed=success on their head and every other check green. Three further PRs (DeusData#1703, DeusData#1741, DeusData#1742) are also red on codeql-gate alone, but from a different cause: the CodeQL run on their head is completed=cancelled, so the gate saw a non-success conclusion and correctly exited 1 without waiting. This change does not help those and is not intended to; they need a fresh scan, most likely having been superseded by concurrency cancel-in-progress in codeql.yml. 300 x 30s = 150 min covers the measured 124 min with margin. The job already declares timeout-minutes: 240, so the wait still cannot outlive its own job. No trigger, permission or gating change: codeql-gate blocks exactly what it blocked before, and a genuine CodeQL failure still exits 1 immediately rather than waiting out the budget. Only the absence of a verdict waits longer. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
|
Thank you for isolating the sanitizer-specific startup budget while preserving the native timing and cancellation contracts. The contribution queue is quite full, so review may take a little time. We have the PR routed and will come back with grounded feedback as soon as possible. |
|
Approved. Timing-budget changes to tests get read carefully here, because the usual version of this change is tuning a racy assertion until it passes. Yours is not that, and the diff shows why in one glance. You scaled the precondition and left the measurement alone. And the comment says which is which, right where the next person will meet it: "This readiness wait is a liveness backstop, not the behavior under test." That sentence is what stops someone in six months treating all four constants as interchangeable knobs. The root cause is a slow deterministic thing, not a racy one. A 421 MB instrumented runner being copied and then taking more than five seconds to reach Using the compile-time One thing worth naming rather than changing: a 60-second readiness backstop means a genuine hang now costs 60 seconds to surface instead of 5. That is the correct trade for a liveness backstop, but it is a real cost if this ever starts failing for a different reason, and worth remembering then. Your CI is the same story as #1741All five reds are one cascade, and none of them is yours. The budget was raised from 45 to 150 minutes in #1960, merged yesterday. I will update this branch and re-run before merging — Two small, well-argued infrastructure fixes sitting two weeks behind a gate timeout that had nothing to do with either of them. Sorry about that. |
What does this PR do?
Uses sanitizer-aware timing budgets for the blocking-Git daemon cancellation regression while preserving the existing native timing budgets and cancellation/cleanup behavior.
Root cause
The ASan/UBSan runner is about 421 MB and can take longer than five seconds to reach
mainafter being copied. The test therefore failed at its readiness backstop before exercising cancellation.Checklist
git commit -s)make -f Makefile.cbm test)make -f Makefile.cbm lint-ci)Validation
scripts/test.sh --suites daemon_runtime: 45 passedscripts/test.sh: 7,555 passed, 0 failed, 8 skippedFixes #1738