Double locking a seat causes an X server to be launched and killed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Light Display Manager |
Fix Released
|
Medium
|
Unassigned |
Bug Description
If a seat is locked when a (non-resettable) greeter is already executing, a new X server is launched. But anyway, when the X server has finished launching, lightdm decides to switch back to the existing greeter instead of executing a new one, and kills the X server. Therefore the X server launch is useless and a waste of time and resources.
[Test Case]
1. Lock a session (e.g. executing "dm-tool lock").
2. When the greeter is launched, switch back to the locked session using the VT mechanisms (i.e. Ctrl+Alt+F7).
3. Lock the session again.
4. After a short delay, the greeter is activated again. But if you check the lightdm log file, you can observe that a new X server (display :2) has been started then killed once initialized.
[Root cause]
In function seat_lock() in seat.c, an existing greeter is searched using function find_resettable
But when the X server launch process has finished and authentication of the new greeter session has succeeded, in the callback function session_
Related branches
- LightDM Development Team: Pending requested
-
Diff: 365 lines (+225/-20)7 files modifiedsrc/seat.c (+55/-8)
tests/Makefile.am (+4/-0)
tests/scripts/lock-seat-after-vt-switch.conf (+10/-12)
tests/scripts/lock-seat-twice.conf (+75/-0)
tests/scripts/lock-session-twice.conf (+77/-0)
tests/test-lock-seat-twice (+2/-0)
tests/test-lock-session-twice (+2/-0)
Changed in lightdm: | |
importance: | Undecided → Medium |
status: | New → Triaged |
Changed in lightdm: | |
status: | Triaged → Fix Committed |
milestone: | none → 1.17.0 |
Changed in lightdm: | |
status: | Fix Committed → Fix Released |