GNOME Bugzilla – Bug 675006
login: Survive fprintd problems
Last modified: 2012-09-13 20:06:39 UTC
fprintd sometimes has problems and stops with an error when it gets activated. This should not cause the login screen to end in a fail whale, so catch this and continue without fingerprints. https://bugzilla.redhat.com//show_bug.cgi?id=814690
Created attachment 213004 [details] [review] login: Survive fprintd problems
Created attachment 213252 [details] [review] gdm: don't fail if fprintd unavailable fingerprint support is optional so we shouldn't try to start fprintd upfront and croak if it fails.
i think attachment 213252 [details] [review] is slightly nicer / more in line with what we do in other parts of the shell code. It seems to work okay.
Review of attachment 213252 [details] [review]: Hm, so we end up not trying to autostart it, and then when we call _startFingerprintConversationIfNeeded() we'll get an error, and we just ignore it? I guess that's OK...but for these kinds of "optional dbus services" it seems like it'd be cleaner to 1) Explicitly try starting them via StartServiceByName 2) Wait in a callback for their name to appear on the bus (notify::g-name-owner property) But this is OK for now.
Attachment 213252 [details] pushed as e333263 - gdm: don't fail if fprintd unavailable
The suggestion in comment 4 would prevent unnecessarily calling into the bus every time the conversation is reset for cases where fprintd is around, but it would mean we don't reactivate fprintd if fprintd ever dies (unless we do StartServiceByName every time we reset, but then we lose the initial benefit)
Created attachment 224265 [details] [review] fingerprint: autostart fprintd when necessary commit e333263fd646cee7b235e181db7dd96a6bf0735e changed fingerprint.js to not throw an exception when fprintd is uninstalled, by adding the flags DO_NOT_LOAD_PROPERTIES and DO_NOT_AUTO_START DO_NOT_LOAD_PROPERTIES is correct. Loading the properties is what makes it fail at initialization time when not installed. DO_NOT_AUTO_START is not correct though. It means fprintd will never get activated implicitly when we need it. This commit removes DO_NOT_AUTO_START thus making fprintd start when we need it, but not fail at initialization time when not around.
Comment on attachment 224265 [details] [review] fingerprint: autostart fprintd when necessary (ignore that, meant for bug 683131 )