Subject: bug#39926: Regression introduced by Shepherd 0.7.0 ('make check-system TESTS=btrfs-root-os' fails)

From: Ludovic Courtès <[email-masked]>
Date: Sat, 21 Mar 2020 14:44:23 +0100

Hi!

Maxim Cournoyer <[email-masked]> skribis:

> Ludovic Courtès <[email-masked]> writes:
>
>> Hi Maxim,
>>
>> Maxim Cournoyer <[email-masked]> skribis:
>>
>>> Maxim Cournoyer <[email-masked]> writes:
>>>
>>> [...]
>>>
>>>> Comparing with the above uname output, we can see that it validates the
>>>> hostname matches against "liberigilo", yet it is "gnu"!  Perhaps
>>>> Shepherd 0.7.0 introduced some problem with the hostname service?
>>>
>>> Another data point: the same happen when running './pre-inst-env make
>>> check-system TESTS=installed-os', so this is not Btrfs specific.
>>
>> Fixed by be0a672c30ad1401019abb5cb83d59be171813d0.
>>
>> I wonder how this could have worked before: ‘reboot’ never gets a reply,
>> so it’s supposed to hang until it’s killed when the ‘user-processes’
>> service is stopped.
>>
>> Thanks,
>> Ludo’.
>
> Hey, weird!  Anyway, thanks for fixing it!  How did you debug this?  I'm curious.

I first noticed that the installation script ran to completion and that
the VM seems to stop properly.  Then I saw our code that did:

  (zero? (marionette-eval '(system #$script) marionette))

So I just tried adding:

  (pk (marionette-eval '(system "/run/current-system/profile/sbin/reboot")
                       marionette))

to the ‘basic’ test.  I noticed it would return 15, and then I got it.

Nothing fancy, mostly stubbornness and perseverance.  :-)

Ludo’.