#1147178 lightdm: 1.33.0-1 breaks seat session switching, light-locker can no longer lock

Package:
lightdm
Source:
lightdm
Description:
simple display manager
Submitter:
Jentiger Moratai
Date:
2026-09-09 14:23:01 UTC
Severity:
normal
#1147178#5
Date:
2026-09-08 20:52:45 UTC
From:
To:
Dear Maintainer,

Upgrading lightdm from 1.32.0-7+b1 to 1.33.0-1 broke seat session switching.
As a consequence light-locker can no longer lock the screen at all, and
leaves
an unrecoverable black screen behind. Downgrading to 1.32.0 fixes it.
Hardware
and configuration are otherwise unchanged; this setup worked for about three
years.

WHAT HAPPENS

Any request to switch to the greeter is refused.
/var/log/lightdm/lightdm.log:

    Seat seat0: Unable to switch to greeter because the seat already has a
    session and does not support session switching

This is logged on every attempt, whether triggered by light-locker, by
"light-locker-command -l", or by calling the D-Bus method directly:

    busctl --system call org.freedesktop.DisplayManager \
      /org/freedesktop/DisplayManager/Seat0 \
      org.freedesktop.DisplayManager.Seat SwitchToGreeter

which returns:

    Call failed: Failed to switch to greeter

No greeter process is started, the VT never changes, and only the original
Xorg remains.

WHY IT IS WORSE THAN A FAILED LOCK

light-locker blanks by mapping a full-screen black window per monitor before
handing off to the greeter. With the handoff refused, those windows stay.
They
are created with close-down mode RetainPermanent, so they survive the
client's
death:

    $ pgrep -x light-locker
    (nothing)
    $ xwininfo -root -children | grep 1920x1080
      0x2e0000c "light-locker": 1920x1080+0+0
      0x2e00010 "light-locker": 1920x1080+1920+0

The result is a black screen over a fully working desktop, on a dual-head
setup covering the whole 3840x1080 area. Killing light-locker does not clear
it. Underneath, everything is healthy - DRM reports both CRTCs enable=1
active=1 with framebuffers bound, connectors dpms=On, backlight on. Only
"xkill -id <window>" or restarting X recovers it. This is very hard to
diagnose, because every layer reports the display as working.

STEPS TO REPRODUCE

 1. Debian with lightdm + lightdm-gtk-greeter + XFCE + light-locker,
    default configuration (no xserver-share set, i.e. the default true).
 2. Log in to an X session.
 3. Run: light-locker-command -l
 4. Screen goes black and never returns to a greeter.
    /var/log/lightdm/lightdm.log shows the message above.

Expected: the greeter appears, and authenticating returns to the same
session.

WORKAROUND / BISECT

Downgrading to lightdm 1.32.0-6+b1 restores correct behaviour: locking
works,
the greeter appears, and logging back in returns to the same session.
Nothing
else was changed. lightdm 1.33.0-1 was the only lightdm version change in
this
machine's dpkg history.

Setting "xserver-share=false" in [Seat:*] does make SwitchToGreeter succeed
on
1.33.0-1, but on this system it then destroys the user session on any VT
switch
(Ctrl+Alt+F2 terminates the X session and lightdm spawns greeters
repeatedly),
so it is not a usable workaround. Mentioned only as a diagnostic data point.

POSSIBLY RELEVANT

The 1.33.0-1 changelog contains a change in exactly the area where seat
capabilities are determined:

    * d/control: use default-logind instead of libpam-systemd (Closes:
#931837)

For what it is worth, logind itself still advertises the capability:

    $ busctl --system get-property org.freedesktop.login1 \
        /org/freedesktop/login1/seat/seat0 \
        org.freedesktop.login1.Seat CanMultiSession
    b true

and allow-user-switching is unset, i.e. at its default of true.

#1147178#10
Date:
2026-09-09 13:34:00 UTC
From:
To:
Looks like a duplicate of https://bugs.debian.org/1143981
(which has been fixed)