GNOME Bugzilla – Bug 696287
Need to enter password twice on fast user switch
Last modified: 2013-03-26 00:59:40 UTC
Using gnome-shell 3.7.92, to reproduce: - from a normal user session, select Switch User, and log into another session with a different user - from the session just created, select switch user again, and choose the previous session - password prompt is triggered, enter password - you will be switched to the lock screen of that session, where you will need to enter password again One password should be enough.
Looks like unlocking 'from the outside' broke
This is a mismatch between what object path gnome-shell is listening for unlock signals and what object logind actually puts on the bus. On my system, I see: echo $XDG_SESSION_ID 3 in gnome-shell: this._currentSession = new SystemdLoginSession(Gio.DBus.system, 'org.freedesktop.login1', '/org/freedesktop/login1/session/' + GLib.getenv('XDG_SESSION_ID')); but $ gdbus call --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --method org.freedesktop.login1.Manager.GetSessionByPID 22167 (objectpath '/org/freedesktop/login1/session/_33',)
Instead of using $XDG_SESSION_ID, we either need to call GetSessionByPID or use sd_pid_get_session()
Created attachment 239791 [details] [review] loginManager: Listen on correct object path We need to call GetSessionByPID() instead of using $XDG_SESSION_ID for the session id. --- Note: Untested.
Created attachment 239794 [details] [review] loginManager: listen to the correct object path Use GetSession() to get the valid object path for the current XDG_SESSION_ID. -- Alternate simpler version; I tested it and it seems to work fine.
Review of attachment 239794 [details] [review]: We should do this async as discussed on IRC.
Created attachment 239801 [details] [review] loginManager: listen to the correct object path -- Now avoiding sync code paths.
Review of attachment 239801 [details] [review]: This one should do. (Tested, works fine)
We should leave this for 3.8.1, I guess
Attachment 239801 [details] pushed as 869e1dc - loginManager: listen to the correct object path Got second approval from r-t.