Subject: ‘static-networking’ service can remain in ‘starting’ state forever

From: Ludovic Courtès <[email-masked]>
Date: Fri, 24 May 2024 16:42:00 +0200

The ‘static-networking’ service can remain in ‘starting’ state forever
when it specifies a nonexistent NIC.

This can be reproduced by running a system such as hydra/bayfront.scm
(in maintenance.git) in ‘guix system vm’: shepherd will wait for
‘networking’ to start forever, preventing the machine from being cleanly
halted.

I believe this is due to indefinite blocking in ‘network-set-up/linux’:

                 ;; Before going any further, wait for the
                 ;; device to show up.
                 (wait-for-link
                  #$(network-address-device address)
                  #:blocking? #f)

It should instead wait for a limited amount of time (info "(shepherd)
Defining Services").

Ludo’.