https://bugs.kde.org/show_bug.cgi?id=528023

            Bug ID: 528023
           Summary: Fingerprint authentication in kscreenlocker
                    reactivates in an infinite loop when sensor timesout
    Classification: Plasma
           Product: plasmashell
      Version First 6.8.2
       Reported In:
          Platform: EndeavourOS
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Screen locking
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: 1.0

Created attachment 197815
  --> https://bugs.kde.org/attachment.cgi?id=197815&action=edit
stock-problem

DESCRIPTION
When I use the new fingerprint sensor menu in plasma 6.8 lock screen after it
times out the message resets the UI so it tries to authenticate again in an
infinite loop. After repeated retries, my fingerprint reader sometimes stops
responding, this is especially problematic because the lock screen remembers
the last login option so when I lock my pc most of the times the fingerprint
breaks.

STEPS TO REPRODUCE
1. Lock screen
2. Interact so the UI appears.
3. Select fingerprint as the authentication method.
4. Leave the screen untouched until it times out.

OBSERVED RESULT
The UI fades away and immediately re-appears with the failure messages and
attempts to authenticate again. 

EXPECTED RESULT
The UI should stay hidden after fingerprint authentication times out and should
not continually restart verification without user interaction.

SOFTWARE/OS VERSIONS
Operating System: EndeavourOS
KDE Plasma Version: 6.8.2
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0

ADDITIONAL INFORMATION

My pam configuration is: pam_fprintd.so max-tries=3 timeout=10
I use Chipsailing CS9711 reader with custom libfprint driver

I attempted to patch it myself with a very minimal patch. I’m not sure whether
this is the correct approach or suitable for an MR but it fixes the problem for
me:

--- a/desktoppackage/contents/lockscreen/LockScreenUi.qml
+++ b/desktoppackage/contents/lockscreen/LockScreenUi.qml
@@ -51 +51,3 @@ Item {
-        lockScreenRoot.uiVisible = true
+        if (authenticator.authenticator !==
ScreenLocker.Authenticators.Fingerprint) {
+            lockScreenRoot.uiVisible = true;
+        }
@@ -68 +70,3 @@ Item {
-            authenticator.startAuthenticating();
+            if (lockScreenRoot.uiVisible || authenticator.authenticator !==
ScreenLocker.Authenticators.Fingerprint) {
+                authenticator.startAuthenticating();
+            }
@@ -167 +171,3 @@ Item {
-            authenticator.startAuthenticating();
+            if (uiVisible || authenticator.authenticator !==
ScreenLocker.Authenticators.Fingerprint) {
+                authenticator.startAuthenticating();
+            }

I'll attach the videos of before and after.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to