ScriptWorker ShadowModeTests: one unexplained wrong sibling value under heavy CPU load #811
Reference in New Issue
Block a user
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?
Seen once while fixing #798 (commit
304d1f1e). In the first loaded run of the reworked ShadowModeTests runaway test (16yesprocesses, load avg ~64) the sibling script's published value was wrong; the output was truncated before the value/reason, so the cause is unknown. Not reproduced in 20+ further loaded runs (16/24/48 load processes, load avg up to 358) or 20 unloaded runs.Hypothesis (unverified): the test's 300 ms in-process run budget expiring under load. If it recurs, capture the failing value's status/reason; if it is a budget timeout, raise the test's run budget (which also sets the worker soft deadline) rather than weakening any assertion. Watch CI for it.
Fixed on master (merge 83e8cf76;
db057548, test-only). Reproduced: 3/8 failures at load avg ~320–390 (32yes+nice -n 20). Every failure was the sibling's shadow run in the worker missing the test's 300 ms soft deadline (shadow Failed [budget] script timed out after 0.3s) — the published value was correct in every run. Test run budget raised to the 2 s production default (namedRunawayRunBudget); no assertion weakened; failures are now self-diagnosing (value/status/reason/timing, guard counters, thread pool, GC, logs). After the fix 10/10 at load avg up to 588. Matching the original single failure to this cause is a strong inference, not proof. Design follow-up: #827 (soft deadline includes transport/scheduling delay). Runtime flake → #828.