GNOME Bugzilla – Bug 770328
Cannot log in via user list after visiting Not Listed? page
Last modified: 2016-09-10 21:51:09 UTC
From the login screen: * Click Not Listed? * Click Cancel * Click a name from the user list and attempt to log in Expected: you get logged in Actual: "Authentication error", then the login dialog disappears and you're left with just the noise background until you hold the power button Interesting: pressing the Space key sometimes makes the login dialog briefly reappear (for a fraction of a second). pressing the Enter key sometimes makes the password entry context menu appear
Sep 10 11:38:00 lumiose-city gnome-shell[1356]: ActUserManager: user (null) has no username (uid: 0) Sep 10 11:38:00 lumiose-city gdm[921]: GdmSession: conversation gdm-password started more than once Sep 10 11:38:00 lumiose-city gnome-shell[1356]: JS ERROR: Failed to start verification for user: Gio.DBusError: GDBus.Error:org.freedesktop.DBus.Error.Spawn.Failed: Could not create authentication helper process ShellUserVerifier<._startService/<@resource:///org/gnome/shell/gdm/util.js:427
shellUserVerifier.begin gets called with my username, then shellUserVerifier.clearUserVerifier gets called twice, then shellUserVerifier.begin is called again, this time with my password in the userName parameter. Awkward!
Created attachment 335257 [details] [review] loginDialog: fix cancel button in ask for username mode If the user clicks Not Listed? to enter ask for username mode, clicks cancel, and then attempts to log in via the user list, the user will see "Authentication failed" after correctly typing the password, and then will become stuck in an empty screen with just the gray noise background. The problem is, we forgot to disconnect from the signal that's waiting for the next button to be pressed on the username entry screen. Since the signal handler that executes here is expecting the username to e input, and isn't prepared for us to have switched back to user list, various bad things happen. We try to start two gdm-password conversations at once, for instance, one using the user's password as the username. I stopped investigating here, because it's easy to fix by disconnecting from the signal at the right time.
Created attachment 335258 [details] [review] loginDialog: fix cancel button in ask for username mode Fix typo in commit message
Hm, that commit seems to work, but it doesn't look safe since I forgot to reset this._nextSignalId
Created attachment 335259 [details] [review] loginDialog: fix cancel button in ask for username mode If the user clicks Not Listed? to enter ask for username mode, clicks cancel, and then attempts to log in via the user list, the user will see "Authentication failed" after correctly typing the password, and then will become stuck in an empty screen with just the gray noise background. The problem is, we forgot to disconnect from the signal that's waiting for the next button to be pressed on the username entry screen. Since the signal handler that executes here is expecting the username to be input, and isn't prepared for us to have switched back to user list, various bad things happen. We try to start two gdm-password conversations at once, for instance, one using the user's password as the username. I stopped investigating here, because it's easy to fix by disconnecting from the signal at the right time.
Review of attachment 335259 [details] [review]: Looks reasonable to me.
Attachment 335259 [details] pushed as cae4d92 - loginDialog: fix cancel button in ask for username mode