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 680750 - Occasional lock-screen brokenness
Occasional lock-screen brokenness
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: login-screen
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Ray Strode [halfline]
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2012-07-28 13:28 UTC by Florian Müllner
Modified: 2013-01-03 01:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GdmUtil: don't call GetUserVerifier from the user session (1.98 KB, patch)
2012-08-03 15:12 UTC, Giovanni Campagna
reviewed Details | Review
GdmUtil: don't call GetUserVerifier from the user session (2.71 KB, patch)
2012-08-03 15:18 UTC, Giovanni Campagna
committed Details | Review

Description Florian Müllner 2012-07-28 13:28:06 UTC
I occasionally see the following:

 After raising the screenshield,

   - text typed into the password entry appears in cleartext
   - the unlock button remains insensitive (and enter obviously does not work either)
   - clicking "sign in as another user" will shortly reveal the user session before ending again with the screenshield


The following .xsession-errors looks relevant:

    JS ERROR: !!!   Exception was: Gio.DBusError: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Can only be called before user is logged in
    JS ERROR: !!!     message = '"GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Can only be called before user is logged in"'
    JS ERROR: !!!     fileName = '"/home/florian/src/gnome-shell/js/gdm/util.js"'
    JS ERROR: !!!     lineNumber = '145'
    JS ERROR: !!!     stack = '"0 anonymous("result" = [object _private_Gio_SimpleAsyncResult], "client" = [object _private_Gdm_Client])@/home/florian/src/gnome-shell/js/gdm/util.js:145
1 wrapper([object _private_Gdm_Client], [object _private_Gio_SimpleAsyncResult])@/home/florian/opt/gnome/share/gjs-1.0/lang.js:204
"'
Comment 1 Giovanni Campagna 2012-08-03 15:10:33 UTC
Ok, so the AccessDenied is because in line 138 of gdm/util.js we catch all errors from OpenReauthenticationChannel and silently fallback to GetUserVerifier, which is ok for the login session, but obviously fails for the unlock dialog.
Comment 2 Giovanni Campagna 2012-08-03 15:12:17 UTC
Created attachment 220251 [details] [review]
GdmUtil: don't call GetUserVerifier from the user session

GetUserVerifier can only be called from the greeter session,
and fails with AccessDenied in all other cases. Also, calling it
hides the real error from OpenReauthenticationChannel, which
instead should be logged.
Comment 3 Jasper St. Pierre (not reading bugmail) 2012-08-03 15:14:31 UTC
Review of attachment 220251 [details] [review]:

::: js/gdm/util.js
@@ +144,3 @@
+
+                this._hold.release();
+                this.emit('verification-failed');

Did you forget a return; or an else or something?
Comment 4 Giovanni Campagna 2012-08-03 15:15:51 UTC
The other bug (the entry in plain text and the confirm button insensitive) is because the pam conversation is async, and we don't know if the entry is a password or not until told by gdm.
One possible fix is to hide the entry until we're ready.
Comment 5 Giovanni Campagna 2012-08-03 15:18:39 UTC
Created attachment 220253 [details] [review]
GdmUtil: don't call GetUserVerifier from the user session

GetUserVerifier can only be called from the greeter session,
and fails with AccessDenied in all other cases. Also, calling it
hides the real error from OpenReauthenticationChannel, which
instead should be logged.

Sorry, attached too soon.
Comment 6 Jasper St. Pierre (not reading bugmail) 2012-08-03 15:23:30 UTC
Review of attachment 220253 [details] [review]:

Makes sense to me.
Comment 7 Giovanni Campagna 2012-08-03 16:08:22 UTC
Attachment 220253 [details] pushed as 48b70f3 - GdmUtil: don't call GetUserVerifier from the user session
Comment 8 Giovanni Campagna 2012-08-03 16:24:59 UTC
This was not really fixed...
Comment 9 Allan Day 2012-08-23 12:57:20 UTC
Updating component.
Comment 10 Giovanni Campagna 2013-01-03 01:01:27 UTC
I believe all the original issues are fixed in 3.6, closing.