Subject: Re: bug#52051: [core-updates-frozen] cannot login ('org.freedesktop.login1' service times out)

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 09 Dec 2021 09:18:13 -0500

Hi Ludovic!

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

> Hi,
>
> Maxim Cournoyer <[email-masked]> skribis:
>
>> Dec  7 15:55:02 localhost shepherd[1]: Service dbus-system has been started.
>> [...]
>> Dec  7 15:55:10 localhost shepherd[1]: Service ntpd has been started.
>> [...]
>> Dec  7 15:54:46 localhost ntpd[341]: ntpd [email-masked] Thu Jan  1 12:00:01 AM UTC 1970 (1): Starting
>> [...]
>> Dec  7 15:55:14 localhost shepherd[1]: Service elogind has been started.
>> [...]
>> Dec  7 15:55:21 localhost shepherd[1]: Service upower-daemon has been started.
>> [...]
>> Dec 7 15:54:51 localhost dbus-daemon[335]: [system] Activating
>> service name='org.freedesktop.login1' requested by ':1.1' (uid=0
>> pid=345 comm="/gnu/store/g1qlpzcfnk2r6186al2hfqjmq9yl7qkk-upower")
>> (using servicehelper)
>
> The key thing here is that dbus-daemon things elogind is not running and
> thus considers it has to start it, which is bound to fail.
>
> You can display the list of services known to the DBus system bus with:
>
>   dbus-send --system --print-reply --dest=org.freedesktop.DBus \
>     /org/freedesktop/DBus org.freedesktop.DBus.ListNames

After launching elogind (added a wait for it in its start slot), the
first time it prints just:

Dec  9 09:08:24 localhost shepherd[1]: ;;; (available-dbus-services
("org.freedesktop.DBus" "fi.w1.wpa_supplicant1"))

And on the last try (25 seconds of trying) it prints:
Dec  9 09:09:27 localhost shepherd[1]: ;;; (available-dbus-services ("org.freedesktop.DBus" "org.freedesktop.PolicyKit1" "org.freedesktop.ModemManager1" "fi.w1.wpa_supplicant1" "org.freedesktop.NetworkManager"))

login1 never shows up.

So elogind is essentially hung up when it is started that early during
boot.

Attached is the requested strace output attached to elogind.

I've tried adding a synchronization loop that tests for dbus-daemon
socket readiness (able to make a connection) to its shepherd service but
it didn't help.

If elogind is restarted post boot login1 shows up and all is happy.

Thanks!

Maxim