Files
msd-core/.changeset/happy-lynx-fly.md
Tom Boucher 7533cb4454 fix(#4104): park the prohibition-enforcement hang fixture on a settling timer (#4331)
* test(#4104): add self-exit regression for the hang fixture (RED at this sha)

* fix(#4104): park the hang fixture on a settling timer instead of a busy loop

The prohibition-enforcement hang fixture busy-looped `while (true) {}`, so a
worker orphaned by a killed runner burned a core forever. It now parks on a
10s settling setTimeout — still hung for any enforcement bound, ~0% CPU if
leaked, and guaranteed to self-terminate. A regression test spawns the exact
served body and asserts it self-exits with no signal.

* test(#4104): harden the self-exit regression (signal/spawn-error paths)

* changeset(#4104)

* changeset(#4104): backfill PR number

---------

Co-authored-by: sim <sim@local>
2026-09-05 18:10:04 -04:00

493 B

type, pr
type pr
Fixed 4331

Test machines no longer accumulate immortal 100%-CPU orphan processes when a test runner is killed mid-hang — the prohibition-enforcement hang fixture busy-looped while (true) {}, so a worker orphaned by a chunk timeout, CI cancellation, or Ctrl+C burned a core indefinitely (users found orphans days old); the fixture now parks on a settling 10s timer — still hung for any enforcement bound, ~0% CPU if leaked, and guaranteed to self-terminate. (#4104)