LightDM fails to switch to greeter on logout if allow-user-switching=false

Bug #1371250 reported by Laércio de Sousa
28
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Light Display Manager
Triaged
High
Unassigned
1.10
Triaged
High
Unassigned
1.12
Won't Fix
High
Unassigned
lightdm (Ubuntu)
Triaged
Medium
Unassigned
Trusty
Triaged
Medium
Unassigned
Utopic
Won't Fix
Medium
Unassigned

Bug Description

In my multiseat system, if I logout on a non-seat0 seat (which has allow-user-switching=false by default), lightdm fails to start a greeter on that seat:

DEBUG: Seat: Display server stopped
DEBUG: Seat: Active display server stopped, starting greeter
DEBUG: Seat: Stopping; failed to start a greeter
DEBUG: Seat: Stopping
DEBUG: Seat: Stopped

I guess the problem is related to seat_switch_to_greeter() calls in session_stopped or display_server_stopped callbacks in seat.c. Switch to greeter should be always allowed on logout.

NOTE: This was observed in LightDM 1.10.2 on Ubuntu 14.04, but I guess it also happens on trunk series.

Tags: multiseat
Changed in lightdm:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Laércio de Sousa (lbssousa) wrote :

Until this bug can be fixed, LightDM should ship a default configuration in /usr/share/lightdm/lightdm.conf.d enabling "allow-user-switching" explicitly, or comment out this code piece at line 980 of file lightdm.c:

        if (!login1_seat_get_can_multi_session (login1_seat))
        {
            g_debug ("Seat %s has property CanMultiSession=no", seat_name);
            seat_set_property (seat, "allow-user-switching", "false");
        }

Revision history for this message
Robert Ancell (robert-ancell) wrote :

We're currently working around this issue with the merges done by Laércio. So now we need to disallow user switching but still be able to return to a greeter on logout.

Changed in lightdm (Ubuntu Trusty):
importance: Undecided → Medium
Changed in lightdm (Ubuntu Utopic):
importance: Undecided → Medium
status: New → Triaged
Changed in lightdm (Ubuntu Trusty):
status: New → Triaged
Revision history for this message
Laércio de Sousa (lbssousa) wrote :

Should we adopt the following solution for this bug?

If allow-user-switching=false for a given seat, a seat_switch_to_greeter() call on that seat implies logout for current user.

Changed in lightdm (Ubuntu Utopic):
status: Triaged → Won't Fix
Revision history for this message
Charles Wright (wrighrc) wrote :

Hello,

I'm using multiseat under ubuntu lts 16.04

I found a description of what is happening here:
https://lists.launchpad.net/ubuntu-multiseat/msg00505.html

In short, seat-1 lock/switch user doesn't work and generates tons of error logs

[+763003.64s] DEBUG: Launching process 27821: /usr/bin/X :1 -s seat-1 :2 -config /etc/X11/xorg.conf.nvidia -seat seat-1 -auth /var/run/lightdm/root/:2 -nolisten tcp
[+763003.69s] DEBUG: Launching process 27822: /usr/bin/X :1 -s seat-1 :2 -config /etc/X11/xorg.conf.nvidia -seat seat-1 -auth /var/run/lightdm/root/:2 -nolisten tcp
[+763003.74s] DEBUG: Launching process 27823: /usr/bin/X :1 -s seat-1 :2 -config /etc/X11/xorg.conf.nvidia -seat seat-1 -auth /var/run/lightdm/root/:2 -nolisten tcp
[+763003.79s] DEBUG: Launching process 27824: /usr/bin/X :1 -s seat-1 :2 -config /etc/X11/xorg.conf.nvidia -seat seat-1 -auth /var/run/lightdm/root/:2 -nolisten tcp
[+763003.84s] DEBUG: Launching process 27825: /usr/bin/X :1 -s seat-1 :2 -config /etc/X11/xorg.conf.nvidia -seat seat-1 -auth /var/run/lightdm/root/:2 -nolisten tcp

I configured allow-user-switching=false so that my logs won't fill up.

[Seat:seat-1]
xserver-command=/usr/bin/X :1 -s seat-1
xserver-config=/etc/X11/xorg.conf.nvidia
# This kept constant respawn of X from filling up logs, but only allows one login - greeter fails to start
allow-user-switching=false

Now what happens, just as reported in this bug is that I can start lightdm, and someone can login once to seat-1, but once they log out there is no greeter respawned.

I think this bug should be updated to include Xenial as well.

Anyways I'm sure multiseat is a rare thing but I wanted someone to know it matters to me.

I'm so close to having it work!

Is there anything else I can try to work around?

I see the question above:

"Should we adopt the following solution for this bug?"

I vote yes to that.

Thanks.

Richard Hansen (rhansen)
tags: added: multiseat
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.