multiseat gdm won't switch users

Bug #158245 reported by luis
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
fast-user-switch-applet
Invalid
Undecided
Unassigned
gdm (Ubuntu)
Confirmed
Low
Unassigned

Bug Description

Binary package hint: gdm

Have multiple servers defined in gdm.conf-custom
---------------------------------------------------------------------------------------------------
[servers]
0=Standard0
1=Standard1

[server-Standard0]
name=Server0
command=/usr/X11R6/bin/X -sharevts -isolateDevice PCI:1:5:0 -layout Seat0
flexible=true

[server-Standard1]
name=Server1
command=/usr/X11R6/bin/X -sharevts -isolateDevice PCI:3:6:0 -layout Seat1
flexible=true
--------------------------------------------------------------------------------------------------
One user locks one of the (multipleseats) and another tries to log in by clicking the "Switch User" button on the login dialog. The screen goes black and if the mouse is moved the login dialog to unlock the first user shows up again. If the first user unlocks his/her session discovers the server selection dialog. If a server is selected the screen goes black again and the login dialog shows up again. The result is that it is imposible to switch users.

Tags: multiseat
Revision history for this message
Richard Hansen (rhansen) wrote :

I too have this problem, although I'd say it's a bug in fast-user-switch-applet, not gdm. I believe the upstream bug is at http://bugzilla.gnome.org/show_bug.cgi?id=368704

Changed in gdm:
status: New → Confirmed
Changed in fast-user-switch-applet:
status: Unknown → Confirmed
Revision history for this message
Richard Hansen (rhansen) wrote :

I'm sorry, I misread your bug report. The bug in fast-user-switch-applet is related, but not the same as the bug you reported. I do have the same problem as you, however.

As far as I understand it, your bug is partially due to a limitation in gnome-screensaver, partially due to a limitation in gdm, and partially due to a limitation in the Linux kernel. I'm not sure the best package to assign to this bug, so I just changed it back to gdm.

gnome-screensaver's contribution: When you click on the "Switch User" button in the unlock dialog box, gnome-screensaver executes the command "gdmflexiserver --startnew Standard" (see the do_user_switch() function in gs-lock-plug.c). Looking at the output of "gdmflexiserver --help", it's not clear to me what the "Standard" parameter does. The man page doesn't even mention the "--startnew" parameter. However, I'm assuming that "Standard" is either ignored or it instructs gdmflexiserver to start a new server as defined in the [server-Standard] section of gdm.conf(-custom). If that parameter is not ignored, attempting to start a new instance of the "Standard" server is not the right thing to do in a multi-seat configuration like yours and mine.

gdmflexiserver's (part of gdm) contribution: I'm less clear about how gdmflexiserver works, but as far as I understand it, gdmflexiserver does its job by firing up a new instance of the X server on an unused Linux virtual terminal. I'm not sure which server section in gdm.conf(-custom) it reads -- it has something to do with the "flexible=true" option. It could be firing up an instance of the wrong server. Unfortunately, the "flexible" gdm option isn't well documented. At any rate, there doesn't seem to be a way to run multiple X servers at the same seat without the use of Linux virtual terminals, and this has problems due to Linux's lack of support for multiple consoles (see below).

Linux kernel's contribution: Linux only supports one console. That one console has many virtual terminals. Since there is only one Linux console (even in a multi-seat X setup), switching virtual terminals affects all seats (hit Ctrl-Alt-F1 and you'll see what I mean. Hit Alt-F7 to go back). This is why multi-seat setups should use the "-novtswitch" X argument in addition to the "-sharevts" argument. I'm guessing that this limitation is what fundamentally prevents gdmflexiserver from working properly.

So from what I can tell, there's no easy fix for this. The best you can do for now is probably set "flexible=false" in gdm.conf and never use the user switch functionality.

Richard Hansen (rhansen)
Changed in fast-user-switch-applet:
status: New → Invalid
tags: added: multiseat
Changed in gdm (Ubuntu):
importance: Undecided → Low
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.