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

From: Ludovic Courtès <[email-masked]>
Date: Tue, 18 Dec 2018 16:39:04 +0100

Hello!

[email-masked] (Ludovic Courtès) skribis:

> Jan Nieuwenhuizen <[email-masked]> skribis:

[...]

>>     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.

A simple way to reproduce this is to run:

  # herd eval root '(begin (use-modules (gnu build file-systems)) (check-file-system "/dev/foo" "ext2"))'

That command does not return because PID 1 is stuck in read(0, …), where
stdin is connected to the console.  You can type “,q” in the console
(usually tty1) and it should be fine.  Of course if you try this
on a remote machine, you’re screwed…

Anyway, commit 6ea6e1476ff4a18d4b4b864c3065d18ed99c69af fixes it, at last.

Thanks,
Ludo’.