lightdm multiseat: no login possible

Bug #976124 reported by Fabian Köster
70
This bug affects 14 people
Affects Status Importance Assigned to Milestone
Light Display Manager
Fix Released
Undecided
Unassigned
lightdm (Ubuntu)
Fix Released
Low
Unassigned
Precise
Invalid
Low
Unassigned

Bug Description

I am testing a multiseat setup with precise:

One XServer is running on intel graphics card, a second one is running on a DisplayLink (usb video) device.

The two greeters are displayed, but without password fields shown so it is not possible to login. If auto-login is enabled in lightdm.conf multiseat works fine.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: lightdm 1.2.0-0ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-22.35-generic 3.2.14
Uname: Linux 3.2.0-22-generic x86_64
ApportVersion: 2.0-0ubuntu4
Architecture: amd64
Date: Sat Apr 7 20:35:52 2012
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Beta amd64 (20120328)
ProcEnviron:
 PATH=(custom, no user)
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SourcePackage: lightdm
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :

Btw: the problem is reproducible with unity-greeter as well as gtk-greeter.

tags: added: multiseat
tags: added: displaylink
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Revision history for this message
Fabian Köster (maestro-alubia) wrote :
Changed in lightdm (Ubuntu):
assignee: nobody → Robert Ancell (robert-ancell)
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in lightdm (Ubuntu Precise):
status: New → Confirmed
Changed in lightdm (Ubuntu):
status: New → Confirmed
Revision history for this message
Paulo J. S. Silva (pjssilva) wrote :

It also affects me.

A simple workaround is to install the lightdm package from Oneiric:

http://packages.ubuntu.com/oneiric/lightdm

I downloaded it from that page and installed manually using dpkg. It is seems to work well.

In order to avoid an update of the package to the Precise version you need to put lightdm on hold:

https://help.ubuntu.com/community/PinningHowto#Introduction_to_Holding_Packages

Note that this is not an ideal solution as you will not receive security updates for this package. By putting it on hold you are assuming manual control over it, so it is your responsibility to update it manually when needed.

Revision history for this message
Anthony (craigslistamc) wrote :

I have a login on both seats, neither of which have a pw input field.
lightdm.log reports:
WARNING: Error using VT_WAITACTIVE 8 on /dev/console: Interrupted system call
May be a related bug: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/997483

Revision history for this message
Anthony (craigslistamc) wrote :

Also would like to mention that Robert Ancell is assignend both of these bugs (4 and 5 months old atm), but the importance for them is undecided and both are at the bottom of his list. https://bugs.launchpad.net/~robert-ancell/+assignedbugs

Revision history for this message
Fabian Köster (maestro-alubia) wrote :

Still not working on Quantal.

Revision history for this message
Paulo J. S. Silva (pjssilva) wrote :

At least the workaround of installing lightdm from Oneiric still works....

Revision history for this message
Sebastien Bacher (seb128) wrote :

not sure how important that sort of multiseat configs are, the report has 4 affected users in ~6 months which suggest that it's not a common setup, setting to "low" but feel free to make a case if that's an important configuration for some environments

Changed in lightdm (Ubuntu Precise):
importance: Undecided → Low
Changed in lightdm (Ubuntu):
importance: Undecided → Low
Revision history for this message
Paulo J. S. Silva (pjssilva) wrote :

I'll try to make a case for multiseat:

1) It is associated with two of the last 5 question on lightdm present in

https://launchpad.net/lightdm

today.

2) Multiseat is considered a major benefit of Fedora 17 and Gnome 3.4:

http://0pointer.de/blog/projects/multi-seat.html
http://library.gnome.org/misc/release-notes/3.4/ (see hardware section)

That is, multiseat, is trying to go mainstream specially with pluggable USB multiseat devices as the one made by pluggable.com.

3) It may have few users because it was never well supported in "plain" Ubuntu.

For example the following the official Wiki pages for multiseat suggest that "The predominant display manager of choice has been KDM" (https://help.ubuntu.com/community/MultiseatX). So maybe the users are just using KDM instead of lightdm.

Easy multiseat would be a very nice addition to Ubuntu as it would allow for easy and efficient sharing of todays overpowered (for the vast majority) desktop computers.

Anyhow, I am not sure this is enough to bump up the importance of this bug.

Revision history for this message
Paulo J. S. Silva (pjssilva) wrote :

After this recent increase on the activity associated with this bug I decided to take some time and investigate further the behavior of the current lightdm.

After many try-and-error on changing the options on lightdm.conf I got an almost perfect setup for my configuration. My configuration is

1) A core-i5 2400 system. First seat uses Intel's integrated graphics. Second seat uses a AMD based card with radeon (open source) graphics.

2) I am using a single xorg.conf file with multiple layouts and hardcoded input devices (I don't believe that this is really important, but it is better to documented it just in case).

At least with this configuration lightdm works, with a small catch - see below, if I delete the -sharevts option when calling X for the first seat. Note that lightdm work accept -sharevts on both seats in version 1.0.6 (Oneiric), but it stopped working with the version shipped with Precise.

The only caveat right now is that the first seat (the one that does not have the -sharevts option) does change to automatically to its virtual terminal, presenting just a black screen with a blinking cursor to the user. To go to the graphicallogin just press Alt-F7 (my first graphical login screen is in VT7).

If I add -sharevts back to the first seat the graphical login appears automatically but the password field can not be used (the behavior described in this bug). I could not find another option to add in place of -sharevts to make the graphical login screen appear automatically.

If others can confirm this behavior I believe that the bug should be closed. Maybe we should open another bug if we can not find a way to make the first login screen automatically, but this is a different problem IMHO.

I attach next my current lightdm.conf (it is very simple right now).

Revision history for this message
Oli Wade (olithered) wrote :

I'm afraid I gave up waiting and switched to Fedora (17).

Revision history for this message
mark (tiberopoulos) wrote :

@Sebastien
"not sure how important that sort of multiseat configs are..."

May I ask for clarification on that pls? Especially on the "that sort of..." bit. I think we're all just after a multi-user system (with one computer and multiple terminals) and all users have to login with a password via LightDM. Is there some other way of achieving this on Ubuntu then?

Tks in advance.

Mark

Revision history for this message
Paulo J. S. Silva (pjssilva) wrote :

After using my new setup, described in comment #23 above for the whole day I have some interesting news: whenever X restart in the second seat, the first seat is kicked out to a black screen and to go back to the its graphical interface I need to type ALT-F7.

This fact explain the problem I was seeing when the seats start, as X for second seat is called after X for the first seat.

Unfortunately this makes the day-to-day use of a newer lightdm much more annoying than I originally thought, as the first seat can be kicked out to the black screen many times a day.

Even worse, at least twice, when the second seat closed the section the transition of the first seat to the black screen resulted in X crashing, completely closing the section for the fist seat (and then ALT-F7 would take you a to a login screen). This is a very bad behavior as it can easily lead to data loss for the first seat user.

Revision history for this message
mpw (matthiaspeterw) wrote :

This is not a ubuntu bug, right? We should file a bug report for lightdm, maybe the maintainer can debug it and fix it with a small patch. As lightdm wants to get the standard display manager, this should be fixed quickly, before multiseat breaks on other distris too.

Or is this bug caused by a special ubuntu distribution patch?

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

@alberts:
for the workaround don't work. it leads to an error while loading nouveau driver. so starting x fails.

Revision history for this message
Renne (renne) wrote :

In my opinion Multiseat is a very important feature.
Just consider you have two parents, two kids or multiple colleagues in your company. Maintaining one machine instead of two, three, four, five or even six ones saves a lot of time, hardware costs and current. Multiseat-capabilites just aren't commonly known and if you try to use it with Ubuntu the only result is super-frustration ...

Make it work, make it easy to set up - and it will become a popular feature.

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

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.

Related bugs:
  * bug #903194: multiseat not set up correctly
  * bug #997483: VT_WAITACTIVE does not work well with a multiseat setup
  * bug #1075125: Multiseat: only first seat session is marked as "active" in ConsoleKit
  * bug #1085841: Add basic systemd-logind multiseat support
  * bug #1171680: Add option if LightDM can use VTs
  * bug #1201124: when second seat user log out, first seat switches to virtual terminal

Changed in lightdm:
assignee: nobody → a7x (a7x)
Changed in lightdm (Ubuntu):
assignee: Robert Ancell (robert-ancell) → a7x (a7x)
Changed in lightdm:
status: New → In Progress
Changed in lightdm (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
pooherman (pooherman) wrote :

Try this:
edit /etx/X11/Xwrapper.config , replace allowed users=console to allowed users=anybody.

Revision history for this message
pooherman (pooherman) wrote :

to be able to enter the password in loging screen

Revision history for this message
pooherman (pooherman) wrote :

and do this :
- del all .Xauthority files in home directories
- run as root pam-auth-update

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Added your ppa and upgraded lightdm and now my multiseat setup is not working... :( First seat works, but second not.

My lightdm conf, lightdm.conf - http://pastebin.com/DvMPZUYd
First seat, xorg-seat0.conf - http://pastebin.com/TmECppbc
Second seat, xorg-seat1.conf - http://pastebin.com/etA01Xqd
My udev rule, 99-seat.rules - http://pastebin.com/QhYwQt99

Am I doing something wrong? Second seat doesn't start. Error message in xorg log file - No devices detected.

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

Sounds to me like there's a bug in your udev rules. Does:

    udevadm info --export-db

show the tags and ID_SEAT variable set like you expect?

Other comments:

  * You don't need a udev rule to assign something to seat0.
    Everything is assigned to seat0 by default.

  * Probably unrelated but you may need to enable
    'user-authority-in-system-dir' in your lightdm.conf:

        [SeatDefaults]
        user-authority-in-system-dir=true

  * I recommend against setting xserver-vt=7 for seat0 -- let LightDM
    choose the VT number for you.

  * You don't need to pass -sharevts to X for seat1 -- LightDM will do
    that for you.

If you are still unable to get it to work, please post additional
information:

  * output of 'udevadm info --export-db'
  * X logs
  * LightDM logs with debugging turned on (edit /etc/init/lightdm.conf
    and change 'exec lightdm' to 'exec lightdm -d')

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

* It seems that ID_SEAT variable is set to what I expect. In udevadm.log you wont see attached mouse as I removed it before made log file.

* Ok, I removed line for seat0 in udev rule.

* Added 'user-authority-in-system-dir' in lightdm.conf file, but it changes nothing.

* Removed 'xserver-vt=7' line from config file.

* Removed '-sharevts' from seat1. It was added because I tested without 'xserver-vt=' line too.

Second seat still doesn't work. Created zip archive with log files and current conf files.

Also tried to start x:
sudo X -core -config xorg-seat1.conf -sharevts :1 -auth /var/run/lightdm/root/:1 -nolisten tcp -novtswitch -seat seat1
X server dosn't start - Fatal server error: (EE) no screens found(EE)

After that:
sudo X -core -config xorg-seat1.conf -sharevts :1 -auth /var/run/lightdm/root/:1 -nolisten tcp -novtswitch -seat seat0
X server started, I was able open gedit on second seat screen from terminal (DISPLAY=:1 gedit)

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

> Also tried to start x:
> sudo X -core -config xorg-seat1.conf -sharevts :1 -auth
> /var/run/lightdm/root/:1 -nolisten tcp -novtswitch -seat seat1
> X server dosn't start - Fatal server error: (EE) no screens
> found(EE)
>
> After that:
> sudo X -core -config xorg-seat1.conf -sharevts :1 -auth
> /var/run/lightdm/root/:1 -nolisten tcp -novtswitch -seat seat0
> X server started, I was able open gedit on second seat screen from
> terminal (DISPLAY=:1 gedit)

Except for no keyboard and no mouse, your udevadm output looks OK.
That's unexpected, because this really sounds like a udev rules issue
to me (X finds the card when it's looking for seat0 cards, but not
when it's looking for seat1 cards).

It could be an X problem. I just noticed that you're running saucy
(or at least X from saucy). I've never tried saucy; I'm currently
running xserver-xorg-core from the xorg-edgers PPA on raring. I know
there have been some changes with hardware detection between 1.13.3
and 1.14.2 (specifically with nVidia cards; see bug #1190546), so
maybe X is to blame.

You can try the following, but I doubt they will help:

  * tag the video cards with 'master-of-seat' (see
    <http://www.freedesktop.org/wiki/Software/systemd/multiseat/>):

TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:01.0/0000:01:00.0/*", TAG+="master-of-seat"
TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/*", TAG+="master-of-seat"

  * relax your multiseat rules to include the HDMI audio on the video
    card in seat1:

TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:1c.0/*", ENV{ID_SEAT}="seat1", TAG+="seat1"

Unfortunately, the following might be your best options for figuring
this out:

  * downgrade X to the raring build in xorg-edgers
  * switch to non-proprietary nVidia drivers

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

Another thing you could try is assign everything to seat1 and see
if you can get just seat 1 to start:

99-multiseat.rules:

    TAG=="seat", ENV{ID_SEAT}="seat1", TAG+="seat1"
    TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/*", TAG+="master-of-seat"

lightdm.conf:

    [SeatDefaults]
    user-session=ubuntu
    greeter-session=unity-greeter
    user-authority-in-system-dir=true

    [Seat:1]
    xdg-seat=seat1
    xserver-command=/usr/bin/X -core -config xorg-seat1.conf -layout Seat1 -s 120 -isolateDevice PCI:2:0:0

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

* I was unable to start only seat1.

* Yes, I am using saucy with nvidia drivers.

* Tried adding 'master-of-seat', still doesn't work.

* Included HDMI audio still doesn't work.

* Downgrading is not option nor switching to non-proprietarty nvidia drivers.

Any other ideas?

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Changed seat names to FirstSeat and SecondSeat. Added udev rules to add tag FirstSeat for video card and usb hub where is connected mouse and keyborad. Now both seats doesn't work - some error on first seat in Xorg.0.log file.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Patched xorg with this (https://bugzilla.redhat.com/attachment.cgi?id=751266&action=diff) patch from this (https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=962907) bug report. And now lightdm shows up on second seat. Calvin Morrow says that fix probably even simplier, read comment #20.

But multiseat still doesn't work. I can login only in one of two seats. Pasword field disappears when I want select other user for second seat. Or if correct user already is selected, I can write in password, but nothing happens when i try to login.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

If I try to change user on second seat when first seat user is already loged in, second seat turns black and has black cross instead of standard mouse pointer.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

* ) Created branch with fix for xorg-server - https://code.launchpad.net/~albertsmuktupavels/xorg-server/fix-no-devices-detected-for-seats-other-than-seat0/+merge/178795.

*) Tested with different seat names. First seat - seat01, second seat - seat1. Added udev rules to assign video card and usb hub for seat01. Both seats started up, i was able to login in first seat, but there was problems - huge memory leaks. In attached zip are log files for xorg and lightdm. My .xsession-errors was full of error lines:

dconf-CRITICAL **: unable to create file '/home/alberts/.cache/dconf/user': Permission denied. dconf will not work properly.

And at least one line of this:
WARNING: Could not get session id for session. Check that logind is properly installed and pam_systemd is getting used at login.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

loginctl list-seats lists only one seat. shouldn't it list two seats?

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

> Patched xorg with this
> (https://bugzilla.redhat.com/attachment.cgi?id=751266&action=diff)
> patch from this
> (https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=962907)
> bug report. And now lightdm shows up on second seat. Calvin Morrow
> says that fix probably even simplier, read comment #20.

Good find! Perhaps I'll upload the patched X to my PPA.

> But multiseat still doesn't work. I can login only in one of two
> seats. Pasword field disappears when I want select other user for
> second seat. Or if correct user already is selected, I can write in
> password, but nothing happens when i try to login.

So my multiseat changes don't appear to affect this particular bug.
That's unfortunate.

I know that when selecting a user, LightDM (or maybe it's
unity-greeter, I can't remember) does some PAM stuff to see if it's
possible to log in without a password. Perhaps you have an uncommon
PAM setup that is confusing LightDM/unity-greeter?

> *) Tested with different seat names. First seat - seat01, second
> seat - seat1. Added udev rules to assign video card and usb hub for
> seat01. Both seats started up, i was able to login in first seat,
> but there was problems - huge memory leaks. In attached zip are log
> files for xorg and lightdm. My .xsession-errors was full of error
> lines:

I'll take a look when I next have the time.

> loginctl list-seats lists only one seat. shouldn't it list two
> seats?

Yes, it should. If I understand correctly, the 'master-of-seat' udev
tag should cause logind to create the second seat. (To avoid starting
an X server before a video card is detected, logind won't create a
seat until a device tagged with 'master-of-seat' appears.) Does
'udevadmin info --export-db' show the 'master-of-seat' tag on your
video card?

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

*) 'udevadmin info --export-db' showed only one record with 'master-of-seat' tag. So I added line 'TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/*", TAG+="master-of-seat"' back to 99-multiseat.rules. Now udevadm shows two records with 'master-of-seat' tag and loginctl lists both seats.

*) What is uncommon setup and what is common setup? I have two user accounts on my saucy install. Both requires password to login.

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

> If I try to change user on second seat when first seat user is
> already loged in,

How were you able to get a user logged in to both seats? I thought
that the password prompt issue only made it possible for one user to
be logged in at a time. Are you doing auto-login?

> second seat turns black and has black cross instead of standard
> mouse pointer.

With X, user switching is only supported on the main seat (seat0).
LightDM currently doesn't ask logind if the current seat supports user
switching; it just assumes that it does. So trying to switch users on
the second seat will do weird things.

Ideally you wouldn't even see the menu option to switch to another
user if you're not logged in on seat0. I have a patch that partly
fixes this, but breaks other things. I'll finish it up after basic
multiseat support has been merged to LightDM.

> *) 'udevadmin info --export-db' showed only one record with
> 'master-of-seat' tag. So I added line 'TAG=="seat",
> DEVPATH=="/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/*",
> TAG+="master-of-seat"' back to 99-multiseat.rules. Now udevadm shows
> two records with 'master-of-seat' tag and loginctl lists both seats.

Did this improve anything? (other than listing both seats)

> *) What is uncommon setup and what is common setup? I have two user
> accounts on my saucy install. Both requires password to login.

The default setup is the common setup. It becomes uncommon the
instant you add or remove a PAM module. There are PAM modules to do
all sorts of stuff related to user authentication. For example, there
are PAM modules to lock out users if they fail to enter their password
more than X times in a row, PAM modules to require new passwords to
match certain rules (e.g., not a variant of a dictionary word, more
than X characters long), PAM modules to require two-factor
authentication (e.g.,
<https://code.google.com/p/google-authenticator/>), etc.

It may help to post the relevant PAM config files:
   * /etc/pam.conf
   * /etc/pam.d/lightdm*
   * /etc/pam.d/common-*
   * /etc/pam.d/other

I can then compare them to my PAM config files to see if there's any
difference.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

> How were you able to get a user logged in to both seats? I thought
> that the password prompt issue only made it possible for one user to
> be logged in at a time. Are you doing auto-login?

I was not logged in both seats. With user changeing I mean: when lightdm starts on both seats by default is selected last logged in user. So for exampe, my user is auto selected on both seats. With my user i login on first seat. On second seat i need to change user / select other user. When I am doing this password field disappears or black screen shows up. I think that greeter crashes as I can see some thing when i kill unity-greeter from system monitor.

> Did this improve anything? (other than listing both seats)

No.

> I can then compare them to my PAM config files to see if there's any
> difference.

Attached zip with pam config files.

Richard Hansen (rhansen)
Changed in lightdm:
assignee: a7x (a7x) → nobody
Changed in lightdm (Ubuntu):
assignee: a7x (a7x) → nobody
Changed in lightdm:
status: In Progress → Confirmed
Changed in lightdm (Ubuntu):
status: In Progress → Confirmed
Revision history for this message
Richard Hansen (rhansen) wrote :

I'm removing the related branches and I'm removing myself from 'assigned to' because I don't think my changes will fix this bug.

The issue of getting X to detect NVIDIA cards on non-seat0 seats has been split off to bug #1209008.

> Attached zip with pam config files.

This is the only difference I see:

diff -uNr -w a/pam.d/common-session b/pam.d/common-session
--- a/pam.d/common-session 2013-08-06 18:28:16.614914993 -0400
+++ b/pam.d/common-session 2013-08-05 15:42:00.000000000 -0400
@@ -28,5 +28,4 @@
 # and here are more per-package modules (the "Additional" block)
 session required pam_unix.so
 session optional pam_systemd.so
-session optional pam_ck_connector.so nox11
 # end of pam-auth-update config

pam_ck_connector.so is from the libpam-ck-connector package. I have it installed because it's marked as required in raring (it's a dependency of ubuntu-desktop), but I'd rather not have it installed since everything should be using logind instead of consolekit. Perhaps something in lightdm is still using consolekit? You can try installing libpam-ck-connector, but I doubt it'll help (and it may cause problems).

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

> I'm removing the related branches and I'm removing myself from 'assigned to' because I
> don't think my changes will fix this bug.

Yes, it seems that your changes doesn't fix this bug. But maybe you have some ideas where or what we need to fix?

> You can try installing libpam-ck-connector, but I doubt it'll help (and it may cause problems).

I tried to install it, but still doesn't work.

I started to think that problem could be with greeter, but I guess I was wrong. Tried two greeters:
* unity-greeter for both seats
* lightdm-greeter for both seats
* unity-greeter for seat0 and lightdm-greeter for seat1

I was able to loggin in both seats two times today, but I have no idea what could caused that - mostly it doesn't work. When I was logged in both seats everything was working. First time I was able to use sound on both seats without starting pulseaudio systemwide.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Adding autologin-user=<username> to second seat I can use both seats. :)

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

> But maybe you have some ideas where or what we need to fix?

A potential conflict with PAM settings was my best idea, but that doesn't seem likely anymore.

> I was able to login in both seats two times today, but I have no
> idea what could caused that

Interesting! That could indicate a race condition. Try delaying the start of X on your second seat to see if that helps.

First, create a wrapper script around X that pauses before starting X:

sudo tee /usr/bin/Xdelayed <<EOF >/dev/null
#!/bin/sh
sleep 10
exec /usr/bin/X "$@"
EOF
sudo chmod a+rx /usr/bin/Xdelayed

Next, modify your second seat config in /etc/lightdm/lightdm.conf to use the wrapper script:

[Seat:1]
xserver-vt=0
xdg-seat=seat1
xserver-command=/usr/bin/Xdelayed <whatever arguments you usually use>

Finally, restart lightdm (sudo service lightdm restart) or reboot and see what happens.

(I know you know how to create scripts and restart lightdm and whatnot, I'm just trying to be detailed for the benefit of the lurkers reading this bug report.)

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Delaying start of X doesn't help...

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

Now i have 3 seats on my saucy install:
1) First (main) seat - seat0 with two screens on first nvidia card; requires password
2) Second seat - seat1 with one screen on second nvidia card; autologin
3) Third seat - seat2 with one screen on intel integrated card; requires password

Seat with autologin works. I can login in first or third seat, but not in both seats. So setting seat to autologin is workaround to this bug. It allows to use all seats, bet I would like that this problem gets fixed.

------------------------------

1) All greeters works fine until I login in one of all seats, it does not matter which one.
    1.1) When it is done remaining unity-greeters starts eating cpu.
2) When one seat is logged in there is two things that could happen:
    2.1) Trying to select different user results in greeter crashing leaving with black screen with ugly cursor.
    2.2) Immediately entering password (without changing selected user) and pressing enter. It shows loading indicator,
            but nothing happens. Now trying to select different user will result in no password field.

My guess is that there is problem with code where it does login stuff. It is not ready for multiseat or it simply removes something it should not resulting remaining greeters unusable.

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

> 1) All greeters works fine until I login in one of all seats, it
> does not matter which one.
> 1.1) When it is done remaining unity-greeters starts eating cpu.

Are any messages being logged over and over when it does this?

Next time it enters an infinite loop, please see if you can attach gdb to the process and get a stack trace. (Please install debug symbols first; see the instructions at: <https://wiki.ubuntu.com/DebuggingProgramCrash#Debug_Symbol_Packages>.)

> 2) When one seat is logged in there is two things that could happen:
> 2.1) Trying to select different user results in greeter crashing
> leaving with black screen with ugly cursor.

Does the greeter crash, exit, or move to the background?

Try attaching gdb to the greeter before selecting a different user. If it crashes, please post the stack trace. (again, please install
debug symbols first)

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

> Are any messages being logged over and over when it does this?

Looking at greeter log files I see two messages which could be releated to problem...
1) WARNING: Error getting UserName from org.freedesktop.DisplayManager.Session: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus)
2) No protocol specified

First message in second seat greeter log file is logged after less than 1 second when I log in in first seat. At this moment greeter starts eating cpu.

Today I was able to log in in both seats one time. Looking at log there were no WARRING message which appears every time when it crashes.

> Does the greeter crash, exit, or move to the background?

Greeter crashes.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

* I am using unity-greeter with my new fix - https://code.launchpad.net/~albertsmuktupavels/unity-greeter/remember-last-logged-in-user-for-each-seat-and-show-gnome-badge-for-all-gnome-sessions

* Started pc. Seat with autologin enabled start. I was asked to enter password. Tried to select other user (same as autologin seat) and unity-greeter crashed.

* Tried several times restart pc, but unity-greeter didn't start on my seat. Seat with autologin still worked fine. Than I edited /var/lib/lightdm/.cache/unity-greeter/seat0-state and changed last-user back to what I use on my first seat.

* Then after restart I was able login. Last lines from greeter's log file:

[+0.33s] DEBUG: unity-greeter.vala:534: Starting main loop
[+0.33s] DEBUG: Read 8 bytes from daemon
[+0.33s] DEBUG: Read 36 bytes from daemon
[+0.33s] DEBUG: Ignoring prompt authentication with invalid sequence number 1
[+0.33s] DEBUG: User /org/freedesktop/Accounts/User1001 changed
[+0.34s] DEBUG: user-list.vala:978: Adding/updating user madara (Madara)
No protocol specified

** (gnome-settings-daemon:1694): WARNING **: Name taken or bus went away - shutting down

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

> First message in second seat greeter log file is logged after less
> than 1 second when I log in in first seat. At this moment greeter
> starts eating cpu.

Please attach a debugger and get a stack trace when this happens.

>> Does the greeter crash, exit, or move to the background?
>
> Greeter crashes.

Please get a stack trace, either by looking at the core file or by
attaching a debugger before it crashes.

> * Tried several times restart pc, but unity-greeter didn't start on
> my seat. Seat with autologin still worked fine. Than I edited
> /var/lib/lightdm/.cache/unity-greeter/seat0-state and changed
> last-user back to what I use on my first seat.

unity-greeter runs some code whenever a user is selected (including
selecting the last logged-in user when unity-greeter starts up). For
example, it does some PAM stuff to see if a password is required for
the user that was selected. Something in this code must be crashing.

In addition to the stack traces, please collect the following
information (before logging in via unity-greeter, so use Ctrl-Alt-F1
to log in via a VT or ssh into the machine):

  * unity-greeter environment variables:

    for pid in $(pidof unity-greeter); do
        printf '\n%s\n---------\n' "pid $pid"
        sudo cat /proc/$pid/environ | tr '\0' '\n'
    done >>unity-greeter-environ.txt

  * unity-greeter session processes: For each session listed in
    'loginctl list-sessions', do:

    loginctl --full --no-pager session-status $session_name >>sessions.txt

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

> In addition to the stack traces, please collect the following
> information (before logging in via unity-greeter, so use Ctrl-Alt-F1
> to log in via a VT or ssh into the machine)

Attached zip with files

> Please attach a debugger and get a stack trace when this happens.

> Please get a stack trace, either by looking at the core file or by
> attaching a debugger before it crashes.

I don't know how to do it. There is no lightdm-dbg or unity-greeter-dbg packages.

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

>> In addition to the stack traces, please collect the following
>> information (before logging in via unity-greeter, so use Ctrl-Alt-F1
>> to log in via a VT or ssh into the machine)
>
> Attached zip with files

Nothing looks strange there.

>> Please get a stack trace, either by looking at the core file or by
>> attaching a debugger before it crashes.
>
> I don't know how to do it. There is no lightdm-dbg or unity-greeter-dbg packages.

I'll upload debug packages later.

Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

I guess this problem is almost fixed. With lightdm 1.7.11 + merged changes from a7x multiseat branch (https://code.launchpad.net/~a7x/lightdm/multiseat) I was able to login every time I tried today, but before loging in I should select correct users on all seats.

If I login in first seat, than on second seat select/change user unity-greeter crashes.

Changed in lightdm:
status: Confirmed → Fix Released
Changed in lightdm (Ubuntu):
status: Confirmed → Fix Released
Changed in lightdm (Ubuntu Precise):
status: Confirmed → Invalid
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.