Subject: bug#65177: udevd error with lvm-raid array leading to race condition with luks

From: Adrien 'neox' Bourmault <[email-masked]>
Date: Wed, 9 Aug 2023 12:25:02 +0200

Hi there.
My setup is the following (LVM array containing a LUKS partition):

   (mapped-devices
    (list
     (mapped-device
       (source "HOMERAID")
       (target "HOMERAID-HOMERAID_data")
       (type lvm-device-mapping))
     (mapped-device
       (source "/dev/mapper/HOMERAID-HOMERAID_data")
       (target "luks-f0a72a6c-499b-4445-8d13-21dc99337752")
       (type luks-device-mapping))))

   (file-systems
     (cons*
       (file-system
         (mount-point "/")
         (device (uuid "2e44f3f7-bb6b-43ac-933a-e8992bf10d29" 'ext4))
         (type "ext4"))
       (file-system
         (mount-point "/home")
         (device "/dev/mapper/luks-f0a72a6c-499b-4445-8d13-21dc99337752")
         (type "ext4")
         (dependencies mapped-devices))
       (file-system
         (mount-point "/boot/efi")
         (device (uuid "DC58-946E" 'fat32))
         (type "vfat"))
      %base-file-systems)))

I use Guix System since 2022, and never had any problem booting with 
this configuration. But I did update my system (and reconfigure it) last 
week and now I can't boot. I don't have any older generation to restore 
(yes I'm dumb, I executed a delete-generations to show how it works to a 
friend), but I think the last working one was from July, 25th or just a 
bit older.

I have in my /var/log/messages :

   Aug  9 11:40:27 localhost vmunix: [    7.525877] udevd[515]: failed 
to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block 
--property DefaultDependencies=no --unit lvm-activate-HOMERAID 
/gnu/store/hffkn63zx2zjadawrkxpnr486frc9n74-lvm2-2.03.21/sbin/lvm 
vgchange -aay --autoactivation event HOMERAID': No such file or directory

On the screen, during boot, I obtain a wall of messages like (not the 
exact message, sorry, can't find on syslog) "Device 
HOMERAID-HOMERAID_data could not be found: does not exist or access 
denied" and after that the system hangs.

However, I can boot successfully if and only if I press Scroll Lock just 
after modesetting and before this message ("Device ... not be found") 
appears and when I press it again (to deactivate its effect) after some 
seconds, the LUKS passphrase prompt appears and allows me to boot properly.

I can use my system but it requires multiple tries each time x) I have 
to be really synchronized with the modesetting and the message xD

Thank you very much.

Freely,
-- 
Adrien Bourmault
Co-maintainer, GNU Boot project
Elected member, XMPP Standards Foundation
Associate member, Free Software Foundation
Trésorier, Association Libre en Communs (https://www.a-lec.org)
GPG : 1DF1132CF1658A8559025C98AAD6B069819E6979