FS#70597 - [sddm] the fix for #70436 leads to a black screen and frozen Xorg

Attached to Project: Arch Linux
Opened by Andrej Podzimek (andrej) - Monday, 26 April 2021, 20:16 GMT
Last edited by Antonio Rojas (arojas) - Wednesday, 05 May 2021, 16:16 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Antonio Rojas (arojas)
Felix Yan (felixonmars)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

sddm 0.19.0-4 works fine.

sddm 0.19.0-5 (which supposedly fixes #70436) yields a black screen and causes Xorg to freeze during initialization forever. The sddm service cannot be restarted without killing Xorg manually. Killing Xorg with -QUIT yields:

[ 2397.855] (EE)
[ 2397.855] (EE) Backtrace:
[ 2397.855] (EE) 0: /usr/lib/Xorg (xorg_backtrace+0x53) [0x558f2d028fd3]
[ 2397.855] (EE) 1: /usr/lib/Xorg (0x558f2cee2000+0x151df5) [0x558f2d033df5]
[ 2397.855] (EE) 2: /usr/lib/libc.so.6 (0x7fa57df56000+0x3cf80) [0x7fa57df92f80]
[ 2397.856] (EE) 3: /usr/lib/libc.so.6 (ioctl+0xb) [0x7fa57e04be6b]
[ 2397.856] (EE) 4: /usr/lib/Xorg (0x558f2cee2000+0x1a235d) [0x558f2d08435d]
[ 2397.856] (EE) 5: /usr/lib/Xorg (xf86OpenConsole+0x191) [0x558f2d085961]
[ 2397.856] (EE) 6: /usr/lib/Xorg (InitOutput+0x1d2c) [0x558f2d05070c]
[ 2397.856] (EE) 7: /usr/lib/Xorg (0x558f2cee2000+0x39456) [0x558f2cf1b456]
[ 2397.856] (EE) 8: /usr/lib/libc.so.6 (__libc_start_main+0xd5) [0x7fa57df7db25]
[ 2397.856] (EE) 9: /usr/lib/Xorg (_start+0x2e) [0x558f2cf1c5de]
[ 2397.856] (EE)
[ 2397.856] (EE) Received signal 3 sent by process 3301, uid 0
[ 2397.856] (EE)

The hardware is a Dell XPS 13 9370.
This task depends upon

Closed by  Antonio Rojas (arojas)
Wednesday, 05 May 2021, 16:16 GMT
Reason for closing:  Fixed
Additional comments about closing:  sddm 0.19.0-6
Comment by Antonio Rojas (arojas) - Tuesday, 27 April 2021, 07:12 GMT
Please post the sddm journal log.
Comment by Andrej Podzimek (andrej) - Tuesday, 27 April 2021, 16:19 GMT
It looks like the main issue is “Failed to read display number from pipe”.

Apr 26 21:12:27 doprdelle systemd[1]: Started Simple Desktop Display Manager.
Apr 26 21:12:27 doprdelle sddm[3136]: Initializing...
Apr 26 21:12:27 doprdelle sddm[3136]: Starting...
Apr 26 21:12:27 doprdelle sddm[3136]: Logind interface found
Apr 26 21:12:27 doprdelle sddm[3136]: Adding new display...
Apr 26 21:12:27 doprdelle sddm[3136]: Loading theme configuration from ""
Apr 26 21:12:27 doprdelle sddm[3136]: Display server starting...
Apr 26 21:12:27 doprdelle sddm[3136]: Adding cookie to "/var/run/sddm/{1f48a0ff-89ab-48b4-9732-1cd36deda241}"
Apr 26 21:12:27 doprdelle sddm[3136]: Running: /usr/bin/X -nolisten tcp -background none -seat seat0 vt2 -auth /var/run/sddm/{1f48a0ff-89ab-48b4-9732-1cd36deda241} -noreset -displayfd 17
Apr 26 21:12:53 doprdelle sddm[3136]: Failed to read display number from pipe
Apr 26 21:12:53 doprdelle sddm[3136]: Display server stopping...
Apr 26 21:12:53 doprdelle sddm[3136]: Attempt 1 starting the Display server on vt 2 failed
Apr 26 21:12:55 doprdelle sddm[3136]: Display server starting...
Apr 26 21:12:55 doprdelle sddm[3136]: Adding cookie to "/var/run/sddm/{1f48a0ff-89ab-48b4-9732-1cd36deda241}"
Apr 26 21:12:55 doprdelle sddm[3136]: Running: /usr/bin/X -nolisten tcp -background none -seat seat0 vt2 -auth /var/run/sddm/{1f48a0ff-89ab-48b4-9732-1cd36deda241} -noreset -displayfd 17
Apr 26 21:13:01 doprdelle systemd[1]: Stopping Simple Desktop Display Manager...
Apr 26 21:13:06 doprdelle sddm[3136]: Failed to read display number from pipe
Apr 26 21:13:06 doprdelle sddm[3136]: Display server stopping...
...
Comment by Mikhail Rudenko (beenohive) - Tuesday, 04 May 2021, 16:05 GMT
For me, freeze happens only when using plymouth. If I interrupt plymouth animation by pressing ESC, sddm works fine.

Freeze log:

May 04 18:47:52 razdolb systemd[1]: Started Simple Desktop Display Manager.
May 04 18:47:52 razdolb sddm[802]: Initializing...
May 04 18:47:52 razdolb sddm[802]: Starting...
May 04 18:47:52 razdolb sddm[802]: Logind interface found
May 04 18:47:53 razdolb sddm[802]: Adding new display...
May 04 18:47:53 razdolb sddm[802]: Loading theme configuration from ""
May 04 18:47:53 razdolb sddm[802]: Display server starting...
May 04 18:47:53 razdolb sddm[802]: Adding cookie to "/var/run/sddm/{0db800af-2bbe-48dd-973b-8101551b2492}"
May 04 18:47:53 razdolb sddm[802]: Running: /usr/bin/X -nolisten tcp -background none -seat seat0 vt2 -auth /var/run/sddm/{0db800af-2bbe-48dd-973b-8101551b2492} -noreset -displayfd 17

$ inxi
CPU: 8-Core AMD Ryzen 7 PRO 4750U with Radeon Graphics (-MT MCP-) speed/min/max: 2481/1400/1700 MHz
Kernel: 5.11.16-arch1-1 x86_64 Up: 15m Mem: 3317.7/31496.2 MiB (10.5%) Storage: 931.51 GiB (75.2% used) Procs: 357 Shell: Bash
inxi: 3.3.01
Comment by Philip Müller (philm) - Wednesday, 05 May 2021, 08:48 GMT
This issue explains it: https://github.com/sddm/sddm/issues/1398

Forcibly taking the first free VT on start has some issues. Essentially it makes the VT allocation random, because it depends on various factors such as system configuration and even nondeterministic ones like service start order. GDM and LightDM also do not use VT_OPENQRY, which is now used, for the greeter and instead try a specific tty configured during build. Especially if plymouth or any other service has taken vtty1 it creates issues and results most likely in a black screen.

For now I recommend to revert it to revision state 4 until upstream comes up with a better solution.

Loading...