-
Notifications
You must be signed in to change notification settings - Fork 152
Description
Bug Report: LightDM fails to start when greeter-setup-script exits with non-zero status
System Information
- Distribution: Linux Mint (Cinnamon)
- LightDM Version: 1.30.0
- Display Manager: LightDM
Description
LightDM completely fails to start the greeter and display server when a greeter-setup-script exits with a non-zero status. This results in the system becoming completely inaccessible to the user (black screen with blinking cursor), requiring recovery mode or live USB to fix.
Steps to Reproduce
- Configure LightDM with a
greeter-setup-scriptthat fails:greeter-setup-script=/usr/bin/numlockx on - If
numlockxis missing, misconfigured, or fails for any reason - Reboot the system
- System displays black screen with cursor, no greeter appears
Expected Behavior
When a greeter-setup-script fails, LightDM should:
- Log the error to
/var/log/lightdm/lightdm.log - Display a warning (optionally)
- Continue starting the greeter anyway
- Allow the user to log in normally
A cosmetic script failure should not prevent system access.
Actual Behavior
LightDM completely stops and exits when the greeter-setup-script fails:
[+1.07s] DEBUG: Launching process 1433: /usr/bin/numlockx on
[+1.07s] DEBUG: Process 1433 exited with return value 1
[+1.07s] DEBUG: Seat seat0: Exit status of /usr/bin/numlockx on: 1
[+1.07s] DEBUG: Seat seat0: Switching to greeter due to failed setup script
[+1.07s] DEBUG: Seat seat0: Creating greeter session
[+1.07s] DEBUG: Seat seat0: Stopping; failed to start a greeter
[+1.07s] DEBUG: Seat seat0: Stopping
[+1.22s] DEBUG: Exiting with return value 1
The system becomes completely unusable, requiring:
- Boot from live USB
- Mount the system partition
- Manually edit configuration files
- Many users would not know how to recover from this
Impact
Critical severity - Complete system lockout from a non-critical component failure.
Workaround
From a live USB environment:
- Mount system partition
- Chroot into the system
- Comment out or remove the failing
greeter-setup-scriptline from/etc/lightdm/lightdm.conf
Suggested Fix
Implement graceful degradation:
- Treat
greeter-setup-scriptfailures as non-fatal - Add a configuration option to specify whether script failure should be fatal (default: false)
- Add timeout for greeter-setup-script execution
- Implement fallback behavior when setup script fails
Additional Context
This issue particularly affects Linux Mint users as the distribution ships with numlockx configured by default in /etc/lightdm/lightdm.conf.d/70-linuxmint.conf. If this package becomes corrupted or misconfigured for any reason, users lose complete access to their system.
A display manager should prioritize user access over cosmetic features. Non-critical scripts should never prevent system login.