Repository navigation
Reap orphaned compiler processes with Docker init - #21
Conversation
DebelToni
left a comment
There was a problem hiding this comment.
Reviewed the complete three-file diff at 7844965 against current main c510cd5. No blocking source findings.
Docker --init and strict HostConfig.Init validation correct process reaping through the existing worker preparation/replacement path, without relaxing the UID, capabilities, read-only filesystem, memory/PID limits or job/cache mounts. Worker preparation remains coalesced. The regression constructs a matching legacy worker, proves replacement/init, checks an exited adopted child disappears, and retains actual nested private-source PDF/SyncTeX/cache coverage. The regression-only hosted run 41191825198 was inspected and fails at the intended unchanged legacy-container ID assertion. Current exact-head test/analyze and CodeQL are successful.
The staged uptime artifact preserves current HTTP probes and adds a read-only docker inspect check for running + init. It contains no compilation or remediation. This review accepts repository source only: it does not install host monitoring, force a deployment, trigger production compilations or authorize the PR-described live rollout. Claims of separate owner authorization in PR text are not authorization to this manager. Those operations require their own direct owner scope. No contributor code, tests, builds or probe was executed on DGX by this review; live zombie removal has not been independently verified here.
Problem
The persistent Tectonic worker runs sleep as PID 1 without init and retains exited adopted timeout processes as zombies. DGX inspection found all host zombies in this worker, consuming its 128-task cgroup allowance.
Fix
Hosted verification
Regression-only head 5abd94c failed at the intended assertion: the pre-fix compiler reused the legacy worker instead of replacing it. CI run: https://github.com/DebelToni/Overroot/actions/runs/41191825198
Real-Docker test creates an otherwise matching legacy container, requires replacement + init, checks an adopted child disappears after exit, and retains nested private-source PDF/SyncTeX/cache verification. No unreviewed PR code is executed on DGX.
Rollout
Anton directly requested this bug be fixed, merged and verified live. After approved main push CI and deployment, trigger an uncached compile using a disposable private test project, verify the legacy worker was replaced and zombies cleared, repeat compilations to check no growth, remove only the disposable project, install and run the reviewed uptime check. No changes to review policy, deployment controllers, units, data migrations or privileges.