After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 770328 - Cannot log in via user list after visiting Not Listed? page
Cannot log in via user list after visiting Not Listed? page
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: login-screen
3.20.x
Other Linux
: Normal normal
: ---
Assigned To: Ray Strode [halfline]
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2016-08-24 10:37 UTC by Michael Catanzaro
Modified: 2016-09-10 21:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
loginDialog: fix cancel button in ask for username mode (1.63 KB, patch)
2016-09-10 17:57 UTC, Michael Catanzaro
none Details | Review
loginDialog: fix cancel button in ask for username mode (1.63 KB, patch)
2016-09-10 18:00 UTC, Michael Catanzaro
none Details | Review
loginDialog: fix cancel button in ask for username mode (1.68 KB, patch)
2016-09-10 18:04 UTC, Michael Catanzaro
committed Details | Review

Description Michael Catanzaro 2016-08-24 10:37:53 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
Comment 1 Michael Catanzaro 2016-09-10 16:38:46 UTC
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
Comment 2 Michael Catanzaro 2016-09-10 17:07:27 UTC
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!
Comment 3 Michael Catanzaro 2016-09-10 17:57:07 UTC
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.
Comment 4 Michael Catanzaro 2016-09-10 18:00:19 UTC
Created attachment 335258 [details] [review]
loginDialog: fix cancel button in ask for username mode

Fix typo in commit message
Comment 5 Michael Catanzaro 2016-09-10 18:03:02 UTC
Hm, that commit seems to work, but it doesn't look safe since I forgot to reset this._nextSignalId
Comment 6 Michael Catanzaro 2016-09-10 18:04:54 UTC
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.
Comment 7 Florian Müllner 2016-09-10 20:23:49 UTC
Review of attachment 335259 [details] [review]:

Looks reasonable to me.
Comment 8 Michael Catanzaro 2016-09-10 21:51:06 UTC
Attachment 335259 [details] pushed as cae4d92 - loginDialog: fix cancel button in ask for username mode