Bug 614573

Summary: fprintd blocks screen unlock
Product: Red Hat Enterprise Linux 6 Reporter: Dan Williams <dcbw>
Component: fprintdAssignee: Bastien Nocera <bnocera>
Status: CLOSED CURRENTRELEASE QA Contact: desktop-bugs <desktop-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: airlied, borgan, cmeadors, ddumas, jmccann, rstrode, stransky, vbenes
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: fprintd-0.1-19.git04fd09cfa.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-10 20:24:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
screensaver log from launch until password timeout
none
log from 2.28.3-5.el6 with *works* none

Description Dan Williams 2010-07-14 19:11:10 UTC
fprintd appears to block unlocking the screen when it's locked via inactivity or via Ctl+Alt+L.  I'm able to log in using my password, but after locking the screen I'm unable to unlock it.

gnome-screensaver takes my password and hangs in "Checking..." until it times the auth attempt out.  I know the password is correct.

I can work around the issue by commenting out the:

auth sufficient pam_fprintd.so

line in my /etc/pam.d/system-auth file.  I can *also* work around the issue by moving the /usr/share/dbus-1/system-services/net.reactivated.Fprint.service file to prevent fprintd from loading.

I have not enrolled any fingerprints on my system, and this is an up-to-date install of RHEL6 as of 2010-07-14.

Comment 2 Dan Williams 2010-07-14 19:36:17 UTC
Created attachment 431885 [details]
screensaver log from launch until password timeout

Comment 3 Dan Williams 2010-07-14 19:40:56 UTC
gnome-screensaver-2.28.3-7.el6.i686
fprintd-0.1-18.git04fd09cfa.el6.i686

Comment 4 Dan Williams 2010-07-14 19:45:44 UTC
Created attachment 431886 [details]
log from 2.28.3-5.el6 with *works*

Comment 5 Dan Williams 2010-07-14 19:47:51 UTC
So downgrading to gnome-screensaver-2.28.3-5.el6 makes things work again.

Comment 6 Dan Williams 2010-07-14 20:03:06 UTC
THe problem appears to be caused by patch #14, remove-theme-support.patch.  Builds without that patch do not exhibit the hang.

Comment 7 Ray Strode [halfline] 2010-07-15 20:46:53 UTC
can't unlock screen is a serious blocker, devack+

Comment 8 Ray Strode [halfline] 2010-07-27 13:56:17 UTC
I spent some time trying to reproduce this yesterday and came up short.  I also read through the patch and can't come up with anything immediately plausible.

We can always revert the patch I guess, but I'd like to avoid that if possible.

Roderick, any chance you could set up a test user that I could remotely debug with?

Comment 9 Ray Strode [halfline] 2010-07-27 22:20:41 UTC
So Roderick McCloud (Dan Williams) set up vnc on his machine and I was able to reproduce.  It took several hours for me to figure out the problem, but it turns out to be an issue in pam_fprintd. 

pam_fprintd is very careful to use its own main loop context (as it should) to prevent getting in the way of the gnome-screensaver.

Unfortunately, there's a small bug in its logic where it ends up removing a random file descriptor from the default context.  In Dan's case that file descriptor is really important.  It's what tells gnome-screensaver when to drop the dialog.

The patch is as simple as:

-			g_source_remove (timeout_id);
+			g_source_destroy (source);

(g_source_remove always operates on the default context)

marking MODIFIED

Comment 11 Ray Strode [halfline] 2010-07-29 13:54:09 UTC
*** Bug 613970 has been marked as a duplicate of this bug. ***

Comment 12 Vladimir Benes 2010-08-04 12:50:05 UTC
cannot see this error any more in snapshot 9
-> VERIFIED

Comment 13 releng-rhel@redhat.com 2010-11-10 20:24:18 UTC
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.