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

Robert Hensing <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #4 from Robert Hensing <[email protected]> ---
I have found a way to reproduce this issue.

1. Lock the screen
2. Enter a wrong password, press Enter, press Escape within a second
3. The screen turns off
4. Enter any password, submit
5. The UI does not respond to Enter or the submit button

I've identified two flaws that cause this.

1. The plasma-desktop QML triggers startAuthenticating() on every
onUiVisibleChanged, including the transition to invisible. In my reproduction,
this causes a rapid reattempt, which is then handled incorrectly. The
graceLockTimer makes it impossible to trigger this with normal password
submissions. This is good UX, but makes it hard to reproduce the bug.

2. The rapid reattempt is not handled correctly. The recently introduced return
in PamWorker::authenticate() causes the flow to terminate without emitting any
signal. PamAuthenticators has already transitioned to the Authenticating state,
and only returns to Idle when it receives a failed() or succeeded() signal.
Since neither is emitted, the state is permanently stuck at Authenticating,
causing startAuthenticating() to silently reject all subsequent attempts.

I have reproduced this with a single monitor. A multi-monitor setup could
trigger the same issue, because onExited also sets uiVisible = false,
triggering startAuthenticating() via onUiVisibleChanged.

References:

Newly introduced return: kscreenlocker, greeter/pamauthenticator.cpp:169,
https://github.com/KDE/kscreenlocker/commit/5c2e6e1e877c1a0ecd915d4b91773cf9c56734e6#diff-bc041436d9ffc2f07acb68b28c8f7aaf0dadc9fefd37ab085116d83fd699991dR169

Unconditional startAuthenticating(): plasma-desktop,
desktoppackage/contents/lockscreen/LockScreenUi.qml:136,
https://github.com/KDE/plasma-desktop/blob/v6.6.0/desktoppackage/contents/lockscreen/LockScreenUi.qml#L136

onExited sets uiVisible = false: plasma-desktop,
desktoppackage/contents/lockscreen/LockScreenUi.qml:146-147,
https://github.com/KDE/plasma-desktop/blob/v6.6.0/desktoppackage/contents/lockscreen/LockScreenUi.qml#L146-L147

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

Reply via email to