Scripts kill by name pattern; kill only the pid recorded at spawn #5108
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Milestone
Description
Name-pattern kills (pkill/killall by name or -f pattern) in 8 tracked scripts and one executed contract test block can kill processes the script did not start: any other run of the same guard, a concurrent job on the same host, or (in one case) every python3 on the host.
Call sites at fbb4e43:
- scripts/check_crux_greedy_rows.sh:48
- scripts/check_ladder_serve_teardown.sh:73, :186
- scripts/qwen-story.sh:40 (
pkill -P $$, by parent pid; lowest risk) - contracts/crux-K-02-v1.yaml:184 (executed
test:block) - crates/aprender-zram/scripts/docker-test-harness.sh:266, :278
- crates/aprender-zram/scripts/falsification-runner.sh:52, :104, :119, :129
- crates/aprender-zram/scripts/scientific-swap-benchmark.sh:313, :493, :562
- crates/aprender-zram/scripts/test-swap-deadlock.sh:39, :40 (
pkill -9 python3), :46, :48
Fix: record each process's pid at spawn and kill only that pid. Each guard touched is re-mutated (a mutant that restores the name kill, or drops the pid kill, must turn a row red).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
noahgift commentedon Oct 11, 2026
Follow-up, not in #5112: the zram scripts' teardown signals the pid read from the pid file without checking that the pid still names a trueno-ublk process. Before the
kill -9, check/proc/$pid/commso a pid the kernel has reused is left alone (the guards in #5112 already check args before their KILL).fix(zram): signal a recorded daemon pid only while its args are still…
fix(scripts): kill only the pid recorded at spawn, never a name patte…
noahgift commentedon Oct 14, 2026
Folded into #2876 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.
Agent: aprender-clerk