summaryrefslogtreecommitdiff
path: root/pim/cmd/icalfs/main.go
diff options
context:
space:
mode:
authorCalvin Morrison <calvin@pobox.com>2026-08-18 22:10:28 -0400
committerCalvin Morrison <calvin@pobox.com>2026-08-18 22:10:28 -0400
commit95cd286e5018e6d12bae869406e38397a3d069c1 (patch)
tree37d530382ff988f9a628e8926fbd077b4e073194 /pim/cmd/icalfs/main.go
parented972197544a12d2527cfe6d9ac0c0d9beb399b0 (diff)
fwstart: make the directory before mounting on it, and let go of the console
if(! test -d /mnt/fw) mntgen /mnt/fw mount(2) needs its mount point to exist, so mntgen cannot create /mnt/fw -- and this ran it only when /mnt/fw was missing, which is exactly the case where it fails: mntgen: mount /tmp/mg/fw: file does not exist: '/tmp/mg' So on a machine that had never had a /mnt/fw, the control directories never appeared, and fw's own "not touching the card until the mountpoint exists" check then refused every card in the file. The script has never worked on a fresh machine. It has also never been run by the suite, which is the other half of why nobody noticed. Now the directory first, then mntgen only if it is not already there -- under mntgen every name exists, which is the test. Both mntgen and fw leave a server behind, and a server started from a shell keeps that shell's descriptors, so at boot they sit on the console's input and it reads as a wedged terminal. This is the trap CLAUDE.md documents; the script was walking into it. They get /dev/null. Three checks, and fwstart now gets run at all: a control directory appears, a card that is not there is reported and skipped, and nothing left running holds the descriptors we started it with. The first fails against the old script. The third does not, because the old script never started anything for want of the directory -- it guards the fix from here, not the bug that was there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'pim/cmd/icalfs/main.go')
0 files changed, 0 insertions, 0 deletions