** Description changed:

- ## Summary
+ [ Impact ]
  
  When GDM 50 is configured to launch an X11 user session (e.g., Cinnamon),
- the spawned session inherits XDG_SESSION_TYPE=wayland from GDM's own
- greeter environment via the PAM session chain. gdm-x-session then broadcasts
- this incorrect value through dbus-update-activation-environment to all
- D-Bus-activated session services. Components like cinnamon-screensaver
+ the spawned session incorrectly sets XDG_SESSION_TYPE=wayland. gdm-x-session 
then broadcasts this incorrect value through dbus-update-activation-environment 
to all D-Bus-activated session services. Components like cinnamon-screensaver
  honor XDG_SESSION_TYPE and exit immediately ("disabled in wayland sessions"),
  causing required-component failure for cinnamon-session, and muffin
  attempts to initialize a native Wayland backend instead of X11, hitting
  EBUSY because GDM's Wayland compositor still holds DRM control.
  
  Net effect: Cinnamon (and presumably other X11-only desktops) cannot be
  launched from GDM on Ubuntu 26.04 — every login attempt times out at 30
  seconds and returns to the greeter.
  
- ## Steps to reproduce
+ [ Test Plan ]
  
  1. Fresh Ubuntu 26.04 install with GDM (default).
  2. `sudo apt install cinnamon-desktop-environment`
  3. Reboot.
  4. At GDM greeter, select user → cog icon → choose "Cinnamon" (Xorg) → log in.
  
  Expected: Cinnamon X11 session loads.
  Actual: Black screen for ~30 seconds, then returns to GDM greeter.
  
+ [ Other info ]
+ 
  ## Evidence (from journalctl of the failed boot)
  
  Environment GDM sets for the X session, captured from gdm-x-session's
  dbus-update-activation-environment output:
  
-   XDG_SESSION_DESKTOP=cinnamon
-   XDG_SESSION_TYPE=wayland       ← incorrect for an X11 session
-   XDG_SESSION_EXTRA_DEVICE_ACCESS=render:accel
-   GDMSESSION=cinnamon
-   DESKTOP_SESSION=cinnamon
+   XDG_SESSION_DESKTOP=cinnamon
+   XDG_SESSION_TYPE=wayland       ← incorrect for an X11 session
+   XDG_SESSION_EXTRA_DEVICE_ACCESS=render:accel
+   GDMSESSION=cinnamon
+   DESKTOP_SESSION=cinnamon
  
  Then in the failing session:
  
-   cinnamon[N]: Failed to create backend: Could not take control:
-     GDBus.Error:System.Error.EBUSY: Device or resource busy
-   org.cinnamon.ScreenSaver: cinnamon-screensaver is disabled in
-     wayland sessions. Exiting.
-   cinnamon-session-binary: WARNING: t+30s: Application
-     'cinnamon.desktop' failed to register before timeout
-   cinnamon-session-binary: CRITICAL: Unable to start session: A program
-     required by the session failed to start.
+   cinnamon[N]: Failed to create backend: Could not take control:
+     GDBus.Error:System.Error.EBUSY: Device or resource busy
+   org.cinnamon.ScreenSaver: cinnamon-screensaver is disabled in
+     wayland sessions. Exiting.
+   cinnamon-session-binary: WARNING: t+30s: Application
+     'cinnamon.desktop' failed to register before timeout
+   cinnamon-session-binary: CRITICAL: Unable to start session: A program
+     required by the session failed to start.
  
  ## Causal chain (verified)
  
-   GDM greeter (Wayland) ──PAM session──▶ gdm-session-worker
-                                             │ inherits 
XDG_SESSION_TYPE=wayland
-                                             ▼
-                                        gdm-x-session
-                                        (starts Xorg correctly,
-                                         but inherited env unchanged)
-                                             │
-                                             ▼
-                                    dbus-update-activation-environment
-                                    broadcasts XDG_SESSION_TYPE=wayland
-                                    to all D-Bus services in the session
-                                             │
-                        ┌────────────────────┴────────────────────┐
-                        ▼                                         ▼
-               cinnamon (muffin)                     cinnamon-screensaver
-               tries native Wayland backend          exits: "disabled in
-               → DRM EBUSY                            wayland sessions"
-               → no compositor                       → required-component
-               → no shell, blank X screen              failure cascade
+   GDM greeter (Wayland) ──PAM session──▶ gdm-session-worker
+                                             │ sets XDG_SESSION_TYPE=wayland
+                                             ▼
+                                        gdm-x-session
+                                        (starts Xorg correctly,
+                                         but inherited env unchanged)
+                                             │
+                                             ▼
+                                    dbus-update-activation-environment
+                                    broadcasts XDG_SESSION_TYPE=wayland
+                                    to all D-Bus services in the session
+                                             │
+                        ┌────────────────────┴────────────────────┐
+                        ▼                                         ▼
+               cinnamon (muffin)                     cinnamon-screensaver
+               tries native Wayland backend          exits: "disabled in
+               → DRM EBUSY                            wayland sessions"
+               → no compositor                       → required-component
+               → no shell, blank X screen              failure cascade
  
  Note: `loginctl show-session $N` reports Type=x11 correctly for the user
  session. The bug is specifically in the D-Bus activation environment
- gdm-x-session broadcasts, which is inherited up the PAM chain rather
- than set fresh based on session type.
+ gdm-x-session broadcasts.
  
  ## Workaround
  
  Replace GDM with LightDM:
  
-   sudo apt install lightdm lightdm-gtk-greeter slick-greeter
-   sudo dpkg-reconfigure lightdm    # choose lightdm
-   sudo systemctl reboot
+   sudo apt install lightdm lightdm-gtk-greeter slick-greeter
+   sudo dpkg-reconfigure lightdm    # choose lightdm
+   sudo systemctl reboot
  
  LightDM does not run a Wayland greeter, so XDG_SESSION_TYPE=x11 propagates
  correctly and Cinnamon launches normally. Confirmed working on the same
  hardware.
  
  WaylandEnable=false in /etc/gdm3/custom.conf does NOT fix the bug. Its
  semantics changed in GDM ~44 to only hide Wayland from the user session
  chooser; GDM's own greeter still runs Wayland regardless.
  
  ## System info
  
  - Ubuntu 26.04 LTS (Resolute Raccoon)
  - Kernel 7.0.0-17-generic
  - GDM3 50.0-0ubuntu1
  - Cinnamon 6.4.13 (universe)
  - Hardware: Razer Blade 15 Early 2020 (Intel UHD + GTX 1660 Ti hybrid, PRIME 
on-demand)
  - Nvidia driver: 595.58.03
  
  ## Notes for triage
  
  - Reproducible: yes, every boot
  - The bug likely affects any X11-only desktop (MATE, XFCE may be similar),
-   not just Cinnamon — anything whose components check XDG_SESSION_TYPE
-   or whose compositor uses the env-var to pick backend.
+   not just Cinnamon — anything whose components check XDG_SESSION_TYPE
+   or whose compositor uses the env-var to pick backend.
  - Possible upstream fix path: gdm-x-session should override
-   XDG_SESSION_TYPE=x11 in the environment it broadcasts via D-Bus,
-   rather than inheriting it from the parent greeter session.
+   XDG_SESSION_TYPE=x11 in the environment
  - I have additional logs available if useful.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 26.04
  Package: gdm3 50.0-0ubuntu1
  ProcVersionSignature: Ubuntu 7.0.0-17.17-generic 7.0.2
  Uname: Linux 7.0.0-17-generic x86_64
  ApportVersion: 2.34.0-0ubuntu2
  Architecture: amd64
  CasperMD5CheckResult: pass
  CurrentDesktop: X-Cinnamon
  Date: Sun May 17 13:53:27 2026
  InstallationDate: Installed on 2025-05-31 (351 days ago)
  InstallationMedia: Ubuntu 25.04 "Plucky Puffin" - Release amd64 (20250415.3)
  ProcEnviron:
-  LANG=en_US.UTF-8
-  PATH=(custom, no user)
-  SHELL=/bin/bash
-  TERM=xterm-256color
-  XDG_RUNTIME_DIR=<set>
+  LANG=en_US.UTF-8
+  PATH=(custom, no user)
+  SHELL=/bin/bash
+  TERM=xterm-256color
+  XDG_RUNTIME_DIR=<set>
  SourcePackage: gdm3
  UpgradeStatus: No upgrade log present (probably fresh install)
  mtime.conffile..etc.gdm3.custom.conf: 2026-05-17T03:41:22.118500

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to gdm3 in Ubuntu.
https://bugs.launchpad.net/bugs/2152848

Title:
  GDM 50 incorrectly sets XDG_SESSION_TYPE=wayland for X11 user
  sessions, breaking Cinnamon and other X11-only desktops

To manage notifications about this bug go to:
https://bugs.launchpad.net/gdm/+bug/2152848/+subscriptions


-- 
desktop-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to