In crates/node/src/cbor/fallback_decoder.rs (and after #537 merges, in crates/testgen/src/testgen.rs), current_child_pid is updated when a child is spawned:
current_child_pid.store(child.id(), atomic::Ordering::Relaxed);
but it is never reset after child.kill() / child.wait(). Callers of child_pid() therefore keep observing the dead PID. On Linux the kernel can reuse that PID for an unrelated process, which would make any signal/lookup done via child_pid() target the wrong process, and breaks crash-recovery assertions that expect "no live child".
Flagged by Copilot.
In
crates/node/src/cbor/fallback_decoder.rs(and after #537 merges, incrates/testgen/src/testgen.rs),current_child_pidis updated when a child is spawned:but it is never reset after
child.kill()/child.wait(). Callers ofchild_pid()therefore keep observing the dead PID. On Linux the kernel can reuse that PID for an unrelated process, which would make any signal/lookup done viachild_pid()target the wrong process, and breaks crash-recovery assertions that expect "no live child".Flagged by Copilot.