ECS01 build: etckeeper git add . busy-loops in-chroot (read(fd)=0), hangs devuan-ecs01 + debian13 #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Building the ECS01 templates (devuan-ecs01, debian13-ecs01) via
src/build-all-templates.shon a non-PVE Devuan host (Hclaude01) hangs indefinitely during the ECS01 package phase. etckeeper's postinst spawnsgit add .in the chroot/etcand that git process pins one CPU core at 99.9% (state R) with.git/index.lockat 0 bytes — zero progress after 20+ minutes. Both ECS01 variants reproduce identically.Root cause (strace of the live PID)
Tight loop of
read(6, "", 8) = 0— ~139,000 calls in 3 seconds. git is busy-reading a file descriptor stuck at EOF (an etckeeper hook / fsmonitor pipe inside the chroot).What it is NOT
/etccontent and not ZFS:git add .on a copy of the exact chroot/etccompletes in <1 min on both tmpfs and a fresh ZFS dir (718 files) with host git.Impact
clean Devuan (no etckeeper) builds + uploads fine. devuan-ecs01 + debian13-ecs01 never produce a tarball on this host.
Proposed workaround (build-host only, does not change the released template)
Before installing etckeeper in the ECS01 phase, pre-seed
/etc/etckeeper/etckeeper.confwithVCS=""in the chroot so etckeeper's postinst skips the git auto-init/commit (template still ships etckeeper; it just isn't auto-initialised, which is harmless —etckeeper initworks on first use). Alternative: temporarilydpkg-divertetckeeper's init during build.Follow-ups
build-devuan-template.shguarded by a non-PVE/build-host flag, or keep it as a host-side wrapper.Evidence captured in
reports/2026-06-16-build-session.md.Update — verified + opt-in workaround committed
/dev/fdon the build host (chrootinherits host
/dev) caused the loop. Disproved: with/dev/fd -> /proc/self/fdin place, an unmodifieddevuan-ecs01build still hangs(
git pid … >90% CPU ~90s, sameread()=0loop). The/dev/fdfix onlyresolved the separate
forgejo-curl/publish failure.7c64a26:SKIP_ETCKEEPER_AUTOINIT=1pre-seeds
etckeeper.conf VCS=""(skips the postinst git init) + passes--force-confold/confdefon the etckeeper-pulling install, in both ECS01phases. Default OFF so real-PVE builds are byte-identical. Templates
built with the flag ship etckeeper installed but
/etcVCS un-initialised(init at provision time).
workaround.
Leaving open: still want the precise root cause of the in-chroot
read(fd)=0loop (fd 6 source) for a non-opt-in fix.