GDM boot failure on Arch Linux after updating glib2 from 2.84.4 to 2.86.0

By on

What's happening?

Last night I performed an update via Pacman. While I started using KDE this year, I still have Gnome-Shell installed and (for reasons) am still using GDM. The update included a lot of Gnome & GDM changes:

  • Gnome was updated from version 48 to version 49
  • Glib2 was updated from 2.84.4 to 2.86.0
  • GDM was updated from version 48 to version 49

After rebooting I was greeted by the dreaded black screen with a static cursor.

To make things worse: switching to another TTY was nearly impossible. As soon as I pressed the Ctrl+Alt+F3 or F4, F5, ... button, I would indeed switch to the terminal login screen, but the cursor would immediately vanish and I was not able to actually type in anything.

All I could do was continuously press Ctrl+Alt+F3 until the cursor remained and it actually worked, which it eventually did.

So what was the issue?

GDM kept segfaulting. The journalctl -b -1 bootlog was filled with this:

sep 25 10:25:58 aeor systemd-coredump[7711]:
[🡕] Process 7204 (gdm) of user 0 dumped core.

Stack trace of thread 7204:
#0  0x00007ad0fc41e64b g_logv (libglib-2.0.so.0 + 0x6564b)
#1  0x00007ad0fc41e904 g_log (libglib-2.0.so.0 + 0x65904)
#2  0x0000610bd1f76ddc n/a (/usr/bin/gdm + 0x33ddc)
#3  0x0000610bd1f7db65 n/a (/usr/bin/gdm + 0x3ab65)
#4  0x00007ad0fc105ac6 n/a (libffi.so.8 + 0x7ac6)
#5  0x00007ad0fc10276b n/a (libffi.so.8 + 0x476b)
#6  0x00007ad0fc10506e ffi_call (libffi.so.8 + 0x706e)
#7  0x00007ad0fc529818 g_cclosure_marshal_generic_va (libgobject-2.0.so.0 + 0x18818)
#8  0x00007ad0fc543c77 n/a (libgobject-2.0.so.0 + 0x32c77)
#9  0x00007ad0fc543d89 g_signal_emit_valist (libgobject-2.0.so.0 + 0x32d89)
#10 0x00007ad0fc543e44 g_signal_emit (libgobject-2.0.so.0 + 0x32e44)
#11 0x0000610bd1f7b1f2 n/a (/usr/bin/gdm + 0x381f2)
#12 0x00007ad0fc28f9cc n/a (libgio-2.0.so.0 + 0xa89cc)
#13 0x00007ad0fc295472 n/a (libgio-2.0.so.0 + 0xae472)
#14 0x00007ad0fc3099ce n/a (libgio-2.0.so.0 + 0x1229ce)
#15 0x00007ad0fc28f9cc n/a (libgio-2.0.so.0 + 0xa89cc)
#16 0x00007ad0fc295472 n/a (libgio-2.0.so.0 + 0xae472)
#17 0x00007ad0fc2ff8b3 n/a (libgio-2.0.so.0 + 0x1188b3)
#18 0x00007ad0fc28f9cc n/a (libgio-2.0.so.0 + 0xa89cc)
#19 0x00007ad0fc28fa15 n/a (libgio-2.0.so.0 + 0xa8a15)
#20 0x00007ad0fc417f4d n/a (libglib-2.0.so.0 + 0x5ef4d)
#21 0x00007ad0fc419617 n/a (libglib-2.0.so.0 + 0x60617)
#22 0x00007ad0fc4199d7 g_main_loop_run (libglib-2.0.so.0 + 0x609d7)
#23 0x0000610bd1f5022f n/a (/usr/bin/gdm + 0xd22f)
#24 0x00007ad0fbe27675 n/a (libc.so.6 + 0x27675)
#25 0x00007ad0fbe27729 __libc_start_main (libc.so.6 + 0x27729)
#26 0x0000610bd1f50595 n/a (/usr/bin/gdm + 0xd595)
...

So GDM was restarting every second, and failing. I'm assuming that the "stealing the cursor" issue was because GDM got far enough to actually steal the cursor, but never to draw something to the screen. The only reason why it eventually worked was because systemd gave up.

How did I solve it?

Simple: I switched to SDDM. Since I'm firmly in the KDE-camp, it only feels right to just switch to SDDM anyway.

There were some discussions about this issue on Reddit though: Trouble with Gnome/GDM 49 under Wayland/Nvidia

The OP there initially solved the issue by downgrading all the related Gnome/GDM packages. Later the OP said the underlying issue was solved by fixing a line in the /etc/nsswitch.conf file, but that's simply not true: I already had the correct file from the beginning.

Comments

Name
Email
Website
Body
submit error done Busy
Jelle De Loecker