Archived
Check NixOS configurations / eval-hosts (push) Failing after 9m45s
When the DRBD kernel module invokes fence-peer via the User Mode Helper mechanism it provides a minimal PATH that omits /run/current-system/sw/bin. crm-fence-peer.sh calls cibadmin, crm_mon etc.; without those in PATH a pipeline breaks with SIGPIPE. A signal-killed process has WEXITSTATUS()==0, so the kernel sees exit code 0, logs "fence-peer helper broken, returned 0", and retries forever — blocking Pacemaker failover completely. Fix: use pkgs.writeShellScript to create thin PATH-fixing wrappers in the Nix store. The wrappers prepend /run/current-system/sw/bin before exec-ing the real crm-fence-peer.sh / crm-unfence-peer.sh, giving them a working Pacemaker toolchain regardless of what PATH the kernel provides. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>