l...@gnu.org (Ludovic Courtès) skribis: > Alex Kost <alez...@gmail.com> skribis: > >> And as reported by several people on #guix (I count at least 4 including >> me and Mark) a wrong swap device leads to a kernel panic if shepherd is >> used as the init system. >> >> Until I realized that it was a wrong swap, I made bisecting on shepherd >> to find out which commit introduced this bug. It gave me commit >> 852341e¹: when I reconfigured my system (with a wrong swap) using >> shepherd on this commit, I had a kernel panic, while with shepherd on >> the previous commit the system booted successfully. >> >> ¹ >> http://git.savannah.gnu.org/cgit/shepherd.git/commit/?id=852341ed0c08941cbdd022135f8bef7be2d7ec54 > > Ooooh, it took me a while but I see how this happens. This is because > we start services directly from the config file, and anything that goes > wrong there is uncaught, which leads to this: > > Service udev has been started. > srfi-34(#<condition &action-runtime-error [service: #<<service> 184b150> > action: start key: system-error arguments: ("swapon" "~S: ~A" > ("/dev/disk/foobar" "No such file or directory") (2))] 1ea24c0>) > [ 6.856167] Kernel panic - not syncing: Attempted to kill init! > exitcode=0x00000100 > [ 6.856167] > [ 6.856869] CPU: 0 PID: 1 Comm: shepherd Not tainted 4.4.1-gnu #1 > [ 6.857319] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS > rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
Commit 081bd3b fixes it. Commit 234ea8a defensively wraps all the configuration file in ‘call-with-error-handling’, which spawns a REPL upon error. Thanks for the detailed investigation! Ludo’.