Subject: Re: bug#42161: Confusing 'guix system' backtrace when root file system is missing
From: Maxim Cournoyer <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: [email-masked], Denis 'GNUtoo' Carikli <[email-masked]>
Date: Sun, 10 Jan 2021 14:26:21 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Ludovic,

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Denis 'GNUtoo' Carikli <[email-masked]> skribis:
>
>> And again I've the same error:
>>> guix system  --on-error=debug -v3 --no-bootloader init system.scm
>>> /mnt/ guile: warning: failed to install locale
>>> Backtrace:
>>>            1 (primitive-load "/root/.config/guix/current/bin/guix")
>>> In guix/ui.scm:
>>>   1949:12  0 (run-guix-command _ . _)
>>> 
>>> guix/ui.scm:1949:12: In procedure run-guix-command:
>>> In procedure struct-vtable: Wrong type argument in position 1
>>> (expecting struct): #f
>>
>> Is that part of my system.scm really correct:
>>> (file-systems %base-file-systems)
>>
>> I hope that I'm not polluting bugreports for issues that I'm responsible
>> of, but I don't have enough knowledge to know that in advance, and I
>> was advised to bugreport on #guix IRC channel.
>
> Sorry for taking so long to get back to you.  You were right: the root
> cause here is that the ‘file-systems’ field does not specify a root file
> system.
>
> Could you add one and let me know how it goes?
>
> I’ve done two things to improve the situation:
>
>   1. Commit a168c3e4f8d580f70e1c26bcdfc5b8378b2fa42d fixes a
>      longstanding issues where we’d get useless backtraces like the one
>      above in such circumstances.
>
>   2. Commit d7e9e0bbc9aadec3e1830767a8771bfbe9c43155 changes ‘guix
>      system’ so that a “missing root file system” error message is
>      printed in this case.

It seems you've addressed the problem thoroughly, thank you!

Closing,

Maxim