During a long session on 2026-07-25, repeated ./scripts/run_gap_tests.sh runs accumulated hundreds of orphaned node-oracle helper processes (perry_parity_nod*, comm truncated), reparented to PID 1 in state ?/?E — unkillable (kill -9 dispatched per-PID, no reap) — until the per-user process table saturated: fork: Resource temporarily unavailable from the gap runner itself, then from every shell (ps hanging, git push failing). Only a reboot cleared them.
A single post-reboot gap run leaked nothing (3 helpers before and after), so the leak likely needs load/fork-pressure conditions — e.g. the runner failing to reap oracle processes when its own forks start failing, which then compounds.
Suggested hardening: the runner should (a) waitpid/kill its oracle helpers in an EXIT trap per test, (b) run helpers in a process group and signal the group, (c) bail out early when fork starts failing instead of spawning further.
Evidence: process-table snapshot showed dozens of (perry_parity_nod) entries with PPID 1; count check between runs: ps -u $(id -u) | grep -c perry_parity_nod.
During a long session on 2026-07-25, repeated
./scripts/run_gap_tests.shruns accumulated hundreds of orphaned node-oracle helper processes (perry_parity_nod*, comm truncated), reparented to PID 1 in state?/?E— unkillable (kill -9 dispatched per-PID, no reap) — until the per-user process table saturated:fork: Resource temporarily unavailablefrom the gap runner itself, then from every shell (pshanging,git pushfailing). Only a reboot cleared them.A single post-reboot gap run leaked nothing (3 helpers before and after), so the leak likely needs load/fork-pressure conditions — e.g. the runner failing to reap oracle processes when its own forks start failing, which then compounds.
Suggested hardening: the runner should (a) waitpid/kill its oracle helpers in an EXIT trap per test, (b) run helpers in a process group and signal the group, (c) bail out early when fork starts failing instead of spawning further.
Evidence: process-table snapshot showed dozens of
(perry_parity_nod)entries with PPID 1; count check between runs:ps -u $(id -u) | grep -c perry_parity_nod.