Long-observed ("OPEN: macOS SIGTERM hang" in session notes since v0.32) but never filed. Reproduced today on two bare x0xd 0.39.0 official-binary instances on macOS 26.6 (M-series):
x0xd --name leakctl --api-port 12798 --skip-update-check (prod bootstrap, ~3h uptime, 3.1 GB RSS)
x0xd --name leakctl2 --api-port 12797 --no-hard-coded-bootstrap --skip-update-check (~1h uptime, 770 MB)
kill <pid> (SIGTERM) → both still running after 13 s with no log output indicating shutdown began; kill -9 required. Earlier today the tic-tac-toe sidecar on studio1 (0.37.4, 142 GB RSS) behaved the same (SIGTERM, 6 s, then -9).
Impact: the #261/#363 transactional upgrade handoff "cancels gracefully within a 5 s bound" and test harnesses' DaemonFixture teardown both assume SIGTERM works — on macOS they fall through to the hard path and lose the clean-shutdown guarantees (dhat dumps, WAL flush, GroupDeleted/withdraw fan-out). Possibly related to the large-RSS state (#368) if shutdown is blocked on a stalled task, but the 770 MB instance hung identically.
Repro: start a bare daemon, wait for peers > 0, kill -TERM, watch kill -0 for 30 s.
🤖 Generated with Claude Code
Long-observed ("OPEN: macOS SIGTERM hang" in session notes since v0.32) but never filed. Reproduced today on two bare
x0xd 0.39.0official-binary instances on macOS 26.6 (M-series):x0xd --name leakctl --api-port 12798 --skip-update-check(prod bootstrap, ~3h uptime, 3.1 GB RSS)x0xd --name leakctl2 --api-port 12797 --no-hard-coded-bootstrap --skip-update-check(~1h uptime, 770 MB)kill <pid>(SIGTERM) → both still running after 13 s with no log output indicating shutdown began;kill -9required. Earlier today the tic-tac-toe sidecar on studio1 (0.37.4, 142 GB RSS) behaved the same (SIGTERM, 6 s, then -9).Impact: the #261/#363 transactional upgrade handoff "cancels gracefully within a 5 s bound" and test harnesses' DaemonFixture teardown both assume SIGTERM works — on macOS they fall through to the hard path and lose the clean-shutdown guarantees (dhat dumps, WAL flush, GroupDeleted/withdraw fan-out). Possibly related to the large-RSS state (#368) if shutdown is blocked on a stalled task, but the 770 MB instance hung identically.
Repro: start a bare daemon, wait for peers > 0,
kill -TERM, watchkill -0for 30 s.🤖 Generated with Claude Code