touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #14267
[Bug 1364725] Re: logind session ID not used due to race condition
** Changed in: lightdm/1.10
Status: In Progress => Fix Committed
** Changed in: lightdm/1.10
Milestone: None => 1.10.2
** Description changed:
[Impact]
- Sometimes a session will fail to get the logind session ID to pass back to the LightDM daemon. This appears to be due to a race in the D-Bus callback org.freedesktop.login1.Manager.GetSessionByPID instead of getting the environment variable XDG_SESSION_ID as set in PAM.
+ Sometimes a session will fail to get the logind session ID to pass back to the LightDM daemon. This appears to be due to a race using the D-Bus method org.freedesktop.login1.Manager.GetSessionByPID instead of getting the environment variable XDG_SESSION_ID as set in PAM.
This bug was detected by a bug in LightDM 1.11.7 where the daemon would
attempt to read both a logind and ConsoleKit ID when the session would
only provide one.
The solution is to use the XDG_SESSION_ID environment variable and not
GetSessionByPID() and to fix the passing of the session id(s) from the
session to the daemon to be unambiguous.
[Test Case]
Check the LightDM log always contains lines like:
[+0.78s] DEBUG: Activating login1 session c1
for each session.
[Regression Potential]
Change is non-trivial and could cause other bugs. Regression tests confirm existing test cases work.
** Description changed:
[Impact]
Sometimes a session will fail to get the logind session ID to pass back to the LightDM daemon. This appears to be due to a race using the D-Bus method org.freedesktop.login1.Manager.GetSessionByPID instead of getting the environment variable XDG_SESSION_ID as set in PAM.
This bug was detected by a bug in LightDM 1.11.7 where the daemon would
- attempt to read both a logind and ConsoleKit ID when the session would
- only provide one.
+ attempt to read both a logind and ConsoleKit ID when this D-Bus call
+ failed.
The solution is to use the XDG_SESSION_ID environment variable and not
GetSessionByPID() and to fix the passing of the session id(s) from the
session to the daemon to be unambiguous.
[Test Case]
Check the LightDM log always contains lines like:
[+0.78s] DEBUG: Activating login1 session c1
for each session.
[Regression Potential]
Change is non-trivial and could cause other bugs. Regression tests confirm existing test cases work.
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to lightdm in Ubuntu.
https://bugs.launchpad.net/bugs/1364725
Title:
logind session ID not used due to race condition
Status in Light Display Manager:
Fix Released
Status in Light Display Manager 1.10 series:
Fix Committed
Status in “lightdm” package in Ubuntu:
Fix Released
Status in “lightdm” source package in Trusty:
In Progress
Status in “lightdm” source package in Utopic:
Fix Released
Bug description:
[Impact]
Sometimes a session will fail to get the logind session ID to pass back to the LightDM daemon. This appears to be due to a race using the D-Bus method org.freedesktop.login1.Manager.GetSessionByPID instead of getting the environment variable XDG_SESSION_ID as set in PAM.
This bug was detected by a bug in LightDM 1.11.7 where the daemon
would attempt to read both a logind and ConsoleKit ID when this D-Bus
call failed.
The solution is to use the XDG_SESSION_ID environment variable and not
GetSessionByPID() and to fix the passing of the session id(s) from the
session to the daemon to be unambiguous.
[Test Case]
Check the LightDM log always contains lines like:
[+0.78s] DEBUG: Activating login1 session c1
for each session.
[Regression Potential]
Change is non-trivial and could cause other bugs. Regression tests confirm existing test cases work.
To manage notifications about this bug go to:
https://bugs.launchpad.net/lightdm/+bug/1364725/+subscriptions
References