Subject: Re: bug#23697: guix system reconfigure hangs, shows repl in messages

From: [email-masked] (Ludovic Courtès)
Date: Mon, 06 Jun 2016 10:27:27 +0200

Jan Nieuwenhuizen <[email-masked]> skribis:

> Then, I uncommented the /home section in drakenvlieg.scm, like so
>
>     ;; Switch to GuixSD
>     (file-system (device "home")
>                  (title 'label)
>                  (mount-point "/home")
>                  (type "ext4"))
>     (file-system (device (label "Debian")) (title 'label) (mount-point "/debian") (type "ext4") (flags '(read-only)))
>
> and (without considering I had mounted /hoom and set $HOME there) ran
>
>     guix system reconfigure drakenvlieg.scm
>
> which eventually printed
>
>     ...
>     guix system: loading new services: file-system-/home urandom-seed ntpd avahi-daemon ssh-daemon...
>     shepherd: Evaluating user expression (register-services (primitive-load "/gn...") ...).
>
> In /var/log/messages I found some clue as to why this did not return

[...]

>     2016-06-01 19:59:57 Evaluating user expression (register-services (primitive-load "/gn...") #).
>     2016-06-01 19:59:57 GNU Guile 2.0.11
>     2016-06-01 19:59:57 Copyright (C) 1995-2014 Free Software Foundation, Inc.
>     2016-06-01 19:59:57 
>     2016-06-01 19:59:57 Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
>     2016-06-01 19:59:57 This program is free software, and you are welcome to redistribute it
>     2016-06-01 19:59:57 under certain conditions; type `,show c' for details.
>     2016-06-01 19:59:57 
>     2016-06-01 19:59:57 Enter `,help' for help.

What happens is that it failed to fsck /home (since it was already
mounted), and stupidly started a rescue REPL that you couldn’t see.

The rescue REPL is a good idea when booting the system; see for
instance:

  http://bugs.gnu.org/22588

However, in the case of an upgrade, we need a way to say “no REPL
please”.  Or maybe a way to make the ‘start’ method idempotent by
checking whether the thing is already mounted.

Thoughts?

Ludo’.