Bug#1004060: systemd: breaks lightdm / lightdm-gtk-greeter

Vincent Lefevre vincent at vinc17.net
Thu Jan 20 12:59:21 GMT 2022


Control: reassign -1 lightdm-gtk-greeter 2.0.8-2
Control: retitle -1 lightdm-gtk-greeter: on startup, the greeter may fail to appear in a multiple-monitor setup - race condition
Control: tags -1 - unreproducible - moreinfo

(removing "unreproducible" after adding "in a multiple-monitor setup"
in the title)

On 2022-01-20 09:54:00 +0100, Michael Biebl wrote:
> Am 20.01.22 um 05:08 schrieb Vincent Lefevre:
> > Package: systemd
> > Version: 250.3-1
> > Severity: critical
> > Justification: breaks unrelated software
> > 
> > The upgrade to systemd 250.3-1 breaks lightdm / lightdm-gtk-greeter:
> > the menu bar and login dialog no longer appear.
> 
> I quickly checked the changelog between 250.2 and 250.3 [1] but didn't find
> anything which might appear relevant (the closest maybe being 19fbd7764d)
> 
> In a next step, I tried lightdm in VM and it came up just fine with 250.3-1
> (see attached screenshot). It is thus likely that this issue is specific to
> your system.

I've done many tests, and indeed, it only occurs with a multiple-monitor
setup: 2 or 3 monitors (but the 3rd monitor, if any, is always ignored,
probably because the nVidia driver cannot handle 3 active monitors at
the same time)... so, in short, the laptop screen and an external monitor.

The second point is that there is a race condition in the detection of
the monitors on startup, so that the behavior varies.

This issue is actually also now reproducible with systemd 250.2, but
the systemd version seems to have an effect of the possible behaviors
(A, B and C below):

With systemd 250.2:
  A. 2 monitors detected, the greeter appears.
  B. 2 monitors detected, the greeter does not appear.

With systemd 250.3:
  B. 2 monitors detected, the greeter does not appear.
  C. 1 monitor detected (the laptop screen), the greeter appears on
     this monitor.

Case C is actually like a one-monitor setup (it could occur in the
past, perhaps still currently with systemd 250.2, but I haven't
done many tests with this version, mainly focusing on 250.3).
Note that when 2 monitors are detected, they are always mirrored.

Case B has never appeared before (I was always in case A or C),
while my monitor setup hasn't changed. 2 things have changed on
my laptop in the last few days:

  1. Some packages have been upgraded, but lightdm-gtk-greeter is
     still from November 2020 (2.0.8-2). Concerning lightdm, this
     is lightdm 1.26.0-8 from 11 January 2022, but only with minor
     changes compared to lightdm 1.26.0-7 from Febrary 2020.
     I might check later.

  2. I have changed the SSD disk of my laptop, and the new one is
     much faster (with 50× up to more than 1000× speedups according
     to iozone). So it is possible that delays with the old disk
     avoided the race condition.

Additional details:

The resolution of the laptop screen is 3200×1800.
The resolution of the external monitor is 3840×2160.
A 3840×2160 virtual screen is used.

I suspect that the greeter thinks that there is a second separate
screen (instead of a mirrored screen), and it puts the menu bar
and login dialog there, so that I cannot see them. The following
workaround would confirm that: set active-monitor=1 in the greeter
config file (/etc/lightdm/lightdm-gtk-greeter.conf). With this
setting, the issue on startup seems to have completely disappeared
(still no issues either with a one-monitor setup). Note: some users
say active-monitor=0, e.g.

  https://forum.mxlinux.org/viewtopic.php?t=61677

but the value 0 doesn't solve the problem for me.

However, when I select a menu, the login dialog disappears and the
menu bar appears only on the right part[*] (Debian bug 993752 may be
related, but with fewer side effects), and when I click on "Restart"
or "Shut Down", the confirmation dialog does not appear (same issue?);
I can still hit Enter to confirm (default choice) or Esc to cancel.
But I can't login again since the login dialog is no longer visible
and cannot reappear.

[*] I think that the greeter assumes that the screen resolution is
3200×1800 and displays the menu bar on the right, like that:

┌─────────────────────────────┬────────┐
│                             │[-menu-]│
│                             │        │
│                             │        │
│                             │        │
│                             │        │
│                             │        │
├─────────────────────────────┘        │
│                                      │
│                                      │
└──────────────────────────────────────┘

Switching to a VT and doing a "service lightdm restart" allows one to
get the login dialog back (whether active-monitor=1 is used or not).

Another user with a similar setup seems to have almost the same issue:

  https://unix.stackexchange.com/questions/636580/empty-login-screen-with-two-monitors-lightdm

-- 
Vincent Lefèvre <vincent at vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



More information about the Pkg-systemd-maintainers mailing list