Files
pkh/src
vhaudiquet 58cd6f6c41
CI / build (push) Successful in 8m44s
CI / test (push) Skipped
CI / publish (push) Skipped
CI / snap (push) Successful in 13m56s
CI / release (push) Skipped
context: give spawned children a clean fd table
pkh's process carries inheritable descriptors (async runtime, gpgme
sockets, the log tee) that std passes to every child. Tools with
fd-number assumptions then break on the shifted table: mmdebstrap's
apt hook is `cat >&N`, and /bin/sh (dash) rejects any two-digit N
with "Bad fd number" — a fresh-chroot bootstrap died with
"mmdebstrap failed to run" whenever the hook pipe landed above
fd 9, and succeeded from a clean shell where it lands lower.

Sweep fds >= 3 pre-exec in the local driver's spawns: it is the one
funnel every context spawn goes through (schroot and unshare chain
through their parent, ssh execs remotely over libssh2). Verified
end to end: the sid bootstrap test fails on the unfixed code under
a polluted fd table and passes with the sweep under the same table.
2026-10-05 13:27:36 +02:00
..
2026-10-02 21:31:48 +02:00