multiseat not set up correctly

Bug #903194 reported by Chris Picton
30
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Light Display Manager
In Progress
Undecided
Richard Hansen
lightdm (Ubuntu)
In Progress
Undecided
Richard Hansen

Bug Description

I have a multiseat xorg.conf setup on Arch Linux (with ServerLayouts called seat-chris and seat-brynn)

Based on the below details, it seems that -sharevts is needed, but not handled correctly by lightdm

If I use a fairly minimal config, I get:
When lightdm starts, Seat 0 is activated
Ctrl-Alt-F8 on Seat 0 kbd activates Seat 1 (deactivates Seat 0)
Ctrl-Alt-F7 on Seat 1 kbd activates Seat 0 (deactivates Seat 1)

lightdm.conf:
--------------------
[LightDM]
start-default-seat=false
[SeatDefaults]
session-wrapper=/etc/lightdm/Xsession
xserver-config=xorg.conf.multiseat
[Seat:0]
xserver-layout=seat-chris
[Seat:1]
xserver-layout=seat-brynn

pstree
-----------
lightdm,9833 /etc/init.d/lightdm start
  `-lightdm,9834
      |-X,9839 :0 -config xorg.conf.multiseat -layout seat-chris -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
      |-X,9841 :1 -config xorg.conf.multiseat -layout seat-brynn -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch
      |-lightdm-gtk-gre,9860
      | `-{lightdm-gtk-gr},9861
      |-lightdm-gtk-gre,9881
      | `-{lightdm-gtk-gr},9882
      |-{lightdm},9837
      |-{lightdm},9840
      |-{lightdm},9863
      `-{lightdm},9884

When I use the sharevts flag on Seat 1, I see the following:
On lightdm start, Seat 0 is activated
After a second or so, Seat 0 goes blank, and Seat 1 is activated
Pressing Ctrl-Alt-F7 on Seat 1 activates Seat 0 again, and I can log in on both correctly

lightdm.conf
-----------------
[LightDM]
start-default-seat=false
[SeatDefaults]
session-wrapper=/etc/lightdm/Xsession
xserver-config=xorg.conf.multiseat
greeter-hide-users=false
[Seat:0]
xserver-layout=seat-chris
[Seat:1]
xserver-command=/usr/bin/X -sharevts
xserver-layout=seat-brynn

pstree
-----------
lightdm,21164 /etc/init.d/lightdm start
  `-lightdm,21165
      |-X,21171 :0 -config xorg.conf.multiseat -layout seat-chris -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
      |-X,21173 -sharevts :1 -config xorg.conf.multiseat -layout seat-brynn -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch
      |-lightdm-gtk-gre,21192
      | `-{lightdm-gtk-gr},21193
      |-lightdm-gtk-gre,21210
      | `-{lightdm-gtk-gr},21211
      |-{lightdm},21168
      |-{lightdm},21172
      |-{lightdm},21195
      `-{lightdm},21215

If I try sharevts on both sessions, I see the following:

On lightdm start, Seat 1 starts up
Seat 0 shows a mouse pointer on a text mode console printing the kernel message 'Invalid Framebuffer ID'
If I force kill lightdm and restart it using the init.d service, then it starts correctly

lightdm.conf
------------------
[LightDM]
start-default-seat=false
[SeatDefaults]
session-wrapper=/etc/lightdm/Xsession
xserver-config=xorg.conf.multiseat
greeter-hide-users=false
[Seat:0]
xserver-command=/usr/bin/X -sharevts
xserver-layout=seat-chris
[Seat:1]
xserver-command=/usr/bin/X -sharevts
xserver-layout=seat-brynn

pstree
--------
lightdm,32594 /etc/init.d/lightdm start
  `-lightdm,32595
      |-X,32599 -sharevts :0 -config xorg.conf.multiseat -layout seat-chris -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
      |-X,32603 -sharevts :1 -config xorg.conf.multiseat -layout seat-brynn -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch
      |-lightdm-gtk-gre,32620
      | `-{lightdm-gtk-gr},32623
      |-lightdm-gtk-gre,32640
      | `-{lightdm-gtk-gr},32643
      |-{lightdm},32598
      |-{lightdm},32600
      |-{lightdm},32645
      `-{lightdm},4109

Related branches

Revision history for this message
Johannes Storm (jo-master) wrote :

are you sure the problem is lightdm. there are informations about bad behaviours with "-sharevts" also with other login managers.
https://bugs.launchpad.net/bugs/893590

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

Also a problem in Ubuntu.

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

In general X behaves poorly with Linux virtual terminals, but in Natty I was able to get gdm+consolekit (patched with the multiseat patches; see <https://launchpad.net/~a7x/+archive/multiseat>) to handle multiseat properly. I had it configured with the -sharevts flag set only on the second of two seats and both seats came up properly. So either something has changed in X to break this or it's a bug/limitation in lightdm.

I'm seeing this problem in Quantal (haven't tried Oneiric or Precise).

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in lightdm (Ubuntu):
status: New → Confirmed
Revision history for this message
Alexandre Magno (alexandre-mbm) wrote :

I did not set up seats in the lightdm.conf but I face the https://bugs.launchpad.net/mir/+bug/1195762/comments/1 problem. These bugs are not related?

Revision history for this message
Laércio de Sousa (lbssousa) wrote :

@Alexandre

Are your additional X servers loaded with "-sharevts" option? You can see it with "ps -FC X | less" or "ps -FC Xorg | less".

Dou you have any additional setup in your lightdm.conf? Could you paste it here?

Revision history for this message
Alexandre Magno (alexandre-mbm) wrote :

alexandre$ ps -FC X
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD

alexandre$ ps -FC Xorg
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 1314 1239 1 15276 24264 1 09:28 tty7 00:10:51 /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -ba

alexandre$ cat /etc/lightdm/lightdm.conf
#[LightDM]
#start-default-seat=false

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[XDMCPServer]
enabled=true

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

LightDM currently assigns each seat a different VT and switches to that VT when starting X. This is why hitting Ctrl-Alt-F7 and Ctrl-Alt-F8 switch between the two seats.

The proper way to handle multiseat is to have only the primary seat switch to a VT, then have all other seats share that VT with the -sharevts argument. LightDM doesn't currently support this, but I have some changes to LightDM in progress to add more complete multiseat support. If you are using Ubuntu, please try installing the version of LightDM in my PPA (<https://launchpad.net/~a7x/+archive/multiseat>):

    sudo apt-add-repository ppa:a7x/multiseat
    sudo apt-get update
    sudo apt-get upgrade

More complete instructions can be found by visiting the PPA page.

Changed in lightdm:
assignee: nobody → a7x (a7x)
Changed in lightdm (Ubuntu):
assignee: nobody → a7x (a7x)
status: Confirmed → In Progress
Changed in lightdm:
status: New → In Progress
Revision history for this message
Alexandre Magno (alexandre-mbm) wrote :

@a7x, I use Ubuntu 12.04.2. This PPA focuses only on support multiseat? Do it keeps sync with the mainstream in other issues? With it I face much risk of having serious bugs in the system?

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

> @a7x, I use Ubuntu 12.04.2.

Unfortunately, the multiseat PPA doesn't contain packages for 12.04 (precise). Multiseat requires logind, and that wasn't introduced to Ubuntu until 13.04 (raring).

> This PPA focuses only on support multiseat?

Yes.

> Do it keeps sync with the mainstream in other issues?

The process is manual, so there may be some time between when Ubuntu fixes a bug and when that fix makes it to the multiseat PPA, but I do generally try to keep them in sync.

I try not to backport new features (only bug fixes).

> With it I face much risk of having serious bugs in the system?

I run these packages on my personal system, so I try to be careful to not introduce serious bugs. However, the packages in the PPA are experimental. If you are concerned about security, stability, and reliability, do not use the packages in the multiseat PPA.

tags: added: precise
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.