Bug 499637 - Lockscreen sometimes prompts for password immediately after locking, and sometimes doesn't
Summary: Lockscreen sometimes prompts for password immediately after locking, and some...
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Screen locking (show other bugs)
Version: 6.2.5
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 499893 500357 500694 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-02-07 08:22 UTC by Ketan
Modified: 2025-04-18 20:51 UTC (History)
13 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
lock screen prompting for password upon locking screen (3.16 MB, video/mp4)
2025-02-07 14:29 UTC, Ketan
Details
Temporary fix (261 bytes, patch)
2025-03-24 16:56 UTC, Marc Payne
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ketan 2025-02-07 08:22:21 UTC
***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

Please remove this comment after reading and before submitting - thanks!
***

SUMMARY
The lock screen immediately prompts for password. The screen should be locked, then once user presses any key, it should ask for password.

The impact of this is the fingerprint reader activates with a 30 second timeout upon locking the screen.

STEPS TO REPRODUCE
1. Press Lock Screen shortcut (Meta+L)

OBSERVED RESULT
Lock screen immediately asks for password and activates fingerprint reader.

EXPECTED RESULT
Lock screen should lock the screen with just the time and date showing. Instead it prompts for password and activates fingerprint reader. Fingerprint reader should only be activated upon return of user to the screen.

SOFTWARE/OS VERSIONS

Linux/KDE Plasma: Fedora KDE
KDE Plasma Version: 6.2.5
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.2
Comment 1 Niccolò Venerandi 2025-02-07 13:03:42 UTC
I cannot reproduce this bug; may I ask you to include a screen recording? (or even just record the monitor with a phone, just to see how the system behaves!)
Comment 2 Ketan 2025-02-07 14:29:01 UTC
Created attachment 178048 [details]
lock screen prompting for password upon locking screen
Comment 3 John Kizer 2025-02-15 03:21:53 UTC
I can reproduce this on my Fedora KDE 41 desktop and a KDE Neon VM (Plasma 6.3.0 on both). On those devices, the immediate presentation of the password prompt occurs whether locking happens via a keyboard shortcut, the Application Launcher menu item, or because of the idle timer.

For what it's worth, when the screen locks due to idle time, the "Delay before password required" setting is still honored, even though the password prompt is displayed.
Comment 4 Krut Patel 2025-02-16 17:43:13 UTC
Same issue here on Arch Linux since a few weeks. Happy to help with debugging.

Not sure if it is related, but I end up hitting the "max login attempts exceeded" after some time, even if I press "unlock" within the grace period.
Comment 5 Nate Graham 2025-02-18 22:48:33 UTC
It's racy; sometimes it does this, and sometimes it doesn't.
Comment 6 fhortner 2025-03-12 13:22:39 UTC
I am experiencing the exact same issue under Fedora 41 since I performed the updates on Feb. 8

Since I am using a U2F USB Security Key as  second factor, that is prompting for touching it (blinking LED). Since when I am not on the computer (the reason for the Lock Screen to be activated), the USB Security key always runs into a timeout. And this timeout always results in an unlock failure after I enter the password.
solution so far without spamming the logs with invalid logins: disable U2F. But lets be hones, this is not really the sense of having U2F, is ist?


List of updates:
user@fedora:~$ dnf4 history info 49
Transaction ID : 49
Begin time     : Sa 08 Feb 2025 14:07:40
Begin rpmdb    : 2fe1084659b88218b76181af29368bce886b4549ee4c0cc5717f551d0281765b
End time       : Sa 08 Feb 2025 14:08:22 (42 seconds)
End rpmdb      : e5591d0be4ea5dc81fa7e2f59466a7e6c4b22c47d119fb831c492a4b44214068
User           : user <user>
Return-Code    : Success
Releasever     :
Command Line   :
Comment        :
Packages Altered:
    Install  openxr-libs-1.1.43-1.fc41.x86_64                  @updates
    Install  assimp-5.3.1-3.fc41.x86_64                        @fedora
    Install  jsoncpp-1.9.5-8.fc41.x86_64                       @fedora
    Install  poly2tri-0.0^20130501hg26242d0aa7b8-2.fc41.x86_64 @fedora
    Install  pugixml-1.13-6.fc41.x86_64                        @fedora
    Upgrade  accountsservice-23.13.9-8.fc41.x86_64             @updates
    Upgrade  brlapi-0.8.5-22.fc41.x86_64                       @updates
    Upgrade  brltty-6.6-22.fc41.x86_64                         @updates
    Upgrade  clang-19.1.7-2.fc41.x86_64                        @updates
    Upgrade  clang-devel-19.1.7-2.fc41.x86_64                  @updates
    Upgrade  clang-libs-19.1.7-2.fc41.x86_64                   @updates
    Upgrade  clang-resource-filesystem-19.1.7-2.fc41.x86_64    @updates
    Upgrade  clang-tools-extra-19.1.7-2.fc41.x86_64            @updates
    Upgrade  compiler-rt-19.1.7-2.fc41.x86_64                  @updates
    Upgrade  fakeroot-1.37-1.fc41.x86_64                       @updates
    Upgrade  fakeroot-libs-1.37-1.fc41.x86_64                  @updates
    Upgrade  firefox-135.0-1.fc41.x86_64                       @updates
    Upgrade  firefox-langpacks-135.0-1.fc41.x86_64             @updates
    Upgrade  geos-3.12.2-3.fc41.x86_64                         @updates
    Upgrade  hwdata-0.392-1.fc41.noarch                        @updates
    Upgrade  ibus-typing-booster-2.27.16-1.fc41.noarch         @updates
    Upgrade  libX11-1.8.11-1.fc41.x86_64                       @updates
    Upgrade  libX11-common-1.8.11-1.fc41.noarch                @updates
    Upgrade  libX11-devel-1.8.11-1.fc41.x86_64                 @updates
    Upgrade  libX11-xcb-1.8.11-1.fc41.x86_64                   @updates
    Upgrade  libnfsidmap-1:2.8.1-7.rc2.fc41.x86_64             @updates
    Upgrade  libomp-19.1.7-2.fc41.x86_64                       @updates
    Upgrade  libomp-devel-19.1.7-2.fc41.x86_64                 @updates
    Upgrade  libusb1-1.0.27-9.fc41.x86_64                      @updates
    Upgrade  llvm-libs-19.1.7-2.fc41.x86_64                    @updates
    Upgrade  nfs-utils-1:2.8.1-7.rc2.fc41.x86_64               @updates
    Upgrade  plasma-integration-6.2.5-2.fc41.x86_64            @updates
    Upgrade  plasma-integration-qt5-6.2.5-2.fc41.x86_64        @updates
    Upgrade  python3-babel-2.17.0-1.fc41.noarch                @updates
    Upgrade  python3-boto3-1.36.12-1.fc41.noarch               @updates
    Upgrade  python3-botocore-1.36.12-1.fc41.noarch            @updates
    Upgrade  python3-brlapi-0.8.5-22.fc41.x86_64               @updates
    Upgrade  python3-unbound-1.22.0-11.fc41.x86_64             @updates
    Upgrade  qt6-filesystem-6.8.2-1.fc41.x86_64                @updates
    Upgrade  qt6-qt5compat-6.8.2-1.fc41.x86_64                 @updates
    Upgrade  qt6-qtbase-6.8.2-2.fc41.x86_64                    @updates
    Upgrade  qt6-qtbase-common-6.8.2-2.fc41.noarch             @updates
    Upgrade  qt6-qtbase-gui-6.8.2-2.fc41.x86_64                @updates
    Upgrade  qt6-qtbase-mysql-6.8.2-2.fc41.x86_64              @updates
    Upgrade  qt6-qtconnectivity-6.8.2-1.fc41.x86_64            @updates
    Upgrade  qt6-qtdeclarative-6.8.2-1.fc41.x86_64             @updates
    Upgrade  qt6-qtimageformats-6.8.2-1.fc41.x86_64            @updates
    Upgrade  qt6-qtmultimedia-6.8.2-1.fc41.x86_64              @updates
    Upgrade  qt6-qtnetworkauth-6.8.2-1.fc41.x86_64             @updates
    Upgrade  qt6-qtpdf-6.8.2-1.fc41.x86_64                     @updates
    Upgrade  qt6-qtpositioning-6.8.2-1.fc41.x86_64             @updates
    Upgrade  qt6-qtquick3d-6.8.2-1.fc41.x86_64                 @updates
    Upgrade  qt6-qtquicktimeline-6.8.2-1.fc41.x86_64           @updates
    Upgrade  qt6-qtscxml-6.8.2-1.fc41.x86_64                   @updates
    Upgrade  qt6-qtsensors-6.8.2-1.fc41.x86_64                 @updates
    Upgrade  qt6-qtserialport-6.8.2-1.fc41.x86_64              @updates
    Upgrade  qt6-qtshadertools-6.8.2-1.fc41.x86_64             @updates
    Upgrade  qt6-qtspeech-6.8.2-1.fc41.x86_64                  @updates
    Upgrade  qt6-qtspeech-flite-6.8.2-1.fc41.x86_64            @updates
    Upgrade  qt6-qtspeech-speechd-6.8.2-1.fc41.x86_64          @updates
    Upgrade  qt6-qtsvg-6.8.2-1.fc41.x86_64                     @updates
    Upgrade  qt6-qttools-6.8.2-1.fc41.x86_64                   @updates
    Upgrade  qt6-qttools-common-6.8.2-1.fc41.noarch            @updates
    Upgrade  qt6-qttranslations-6.8.2-1.fc41.noarch            @updates
    Upgrade  qt6-qtvirtualkeyboard-6.8.2-1.fc41.x86_64         @updates
    Upgrade  qt6-qtwayland-6.8.2-1.fc41.x86_64                 @updates
    Upgrade  qt6-qtwebchannel-6.8.2-1.fc41.x86_64              @updates
    Upgrade  qt6-qtwebengine-6.8.2-1.fc41.x86_64               @updates
    Upgrade  qt6-qtwebsockets-6.8.2-1.fc41.x86_64              @updates
    Upgrade  qt6-qtwebview-6.8.2-1.fc41.x86_64                 @updates
    Upgrade  qt6-srpm-macros-6.8.2-1.fc41.noarch               @updates
    Upgrade  rpm-sequoia-1.7.0-5.fc41.x86_64                   @updates
    Upgrade  selinux-policy-41.32-1.fc41.noarch                @updates
    Upgrade  selinux-policy-targeted-41.32-1.fc41.noarch       @updates
    Upgrade  unbound-anchor-1.22.0-11.fc41.x86_64              @updates
    Upgrade  unbound-libs-1.22.0-11.fc41.x86_64                @updates
    Upgrade  xorg-x11-server-Xwayland-24.1.5-1.fc41.x86_64     @updates
Comment 7 fhortner 2025-03-12 13:45:21 UTC
Since I am experiencing this issue since Feb 8. I could tackle it down to some updated packages (see list in the post before).

The issue is definitly KDE related (no issue with Gnome), so there are these updates:
plasma-integration-6.2.5-2.fc41.x86_64
plasma-integration-qt5-6.2.5-2.fc41.x86_64
and also some QT6 packages.

Since the issue appeared BEFORE the upgrade to Plasma 6.3 (which was pushed on Feb. 12), I would say it appeared with Plasma 6.2.5.
Comment 8 Marc Payne 2025-03-24 13:03:46 UTC
I've been seeing this 'immediate password prompt' issue on several systems, all running Arch. I've compared package versions between affected and not-affected systems and have concluded that it is the update of Qt 6.8.1 -> 6.8.2 causing this.

I added some additional logging output to LockScreenUi.qml (/usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/) and it seems that Item::MouseArea::onPositionChanged is being called immediately even when the system is idle (no mouse movement), setting uiVisible = true. A quick search of the Qt 6.8.2 release notes finds QTBUG-127122 - this is an intentional change emitting the positionChanged event in response to a QEvent::HoverEnter event. No matter where the pointer is positioned, it will enter the newly created full-screen MouseArea when the lock screen is displayed and onPositionChanged will be called.

I have temporarily fixed the issue on a couple of systems by introducing a new boolean property 'ignorePositionChanged' and using it to make the first call of onPositionChanged a no-op (uiVisible = !ignorePositionChanged; ignorePositionChanged = false). I don't have any experience with Qt so perhaps there is a more elegant solution.
Comment 9 fhortner 2025-03-24 13:21:31 UTC
(In reply to Marc Payne from comment #8)
> I've been seeing this 'immediate password prompt' issue on several systems,
> all running Arch. I've compared package versions between affected and
> not-affected systems and have concluded that it is the update of Qt 6.8.1 ->
> 6.8.2 causing this.

That would fit with what I experienced, since I have the issue since the upgrade of Qt to 6.8.2

> I added some additional logging output to LockScreenUi.qml
> (/usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/) and
> it seems that Item::MouseArea::onPositionChanged is being called immediately
> even when the system is idle (no mouse movement), setting uiVisible = true.
> A quick search of the Qt 6.8.2 release notes finds QTBUG-127122 - this is an
> intentional change emitting the positionChanged event in response to a
> QEvent::HoverEnter event. No matter where the pointer is positioned, it will
> enter the newly created full-screen MouseArea when the lock screen is
> displayed and onPositionChanged will be called.

Amazing work that you could tackle it down, thank you!

Wouldn't it be an idea to file a Qt bug about this regression?
Comment 10 fhortner 2025-03-24 13:36:41 UTC
What QTBUG-127122 mentions is:
I can't find out why this signal is not triggered when the mouse enters for the first time in the MouseArea

So it could be that when the lock screen is enabled, the MouseArea is created.
Since the mouse is not really entering the MouseArea but is more or less already in the MouseArea since creation, this well could an unintentional regression.

But to be hones, I have no experience how it coded, it's just an idea.
Comment 11 Marc Payne 2025-03-24 15:02:11 UTC
(In reply to fhortner from comment #10)
> What QTBUG-127122 mentions is:
> I can't find out why this signal is not triggered when the mouse enters for
> the first time in the MouseArea
> 
> So it could be that when the lock screen is enabled, the MouseArea is
> created.
> Since the mouse is not really entering the MouseArea but is more or less
> already in the MouseArea since creation, this well could an unintentional
> regression.
> 
> But to be hones, I have no experience how it coded, it's just an idea.

Yes, the MouseArea is essentially being created underneath the mouse pointer so the pointer is already deemed to have entered it. A QEvent::HoverEnter event is fired as a result which I think is reasonable. The change in QTBUG-127122 causes the HoverEnter handler to now emit the positionChanged signal. In the case of the lock screen, the pointer hasn't actually moved but usually a HoverEnter would be occurring as a result of pointer movement and so a positionChanged signal makes sense, which I think was the point being made in the Qt bug report. I'm not sure the Qt Company will be particularly interested in complicating their code to deal with this edge case. If this behavior had been in place from the start, KDE would have needed to work around it anyway.
Comment 12 fhortner 2025-03-24 15:38:09 UTC
Well, I do understand "the mouse to enter" as being moved activly into the MouseArea.
But I would definitely say that "enter" does not mean "find itself in the MouseArea upon creation".

It makes sense to fire a QEvent::HoverEnter event. But does it make sense to emit a positionChanged signal?
I would say the positionChanged signal should only be emitted in case the mouse was actually moved and changed it's position. This is not the case when the system is idle and a new MouseArea is created.

That's why I see it as a Qt regression.
Comment 13 fhortner 2025-03-24 15:52:12 UTC
(In reply to Marc Payne from comment #11)
> Yes, the MouseArea is essentially being created underneath the mouse pointer
> so the pointer is already deemed to have entered it. A QEvent::HoverEnter
> event is fired as a result which I think is reasonable. The change in
> QTBUG-127122 causes the HoverEnter handler to now emit the positionChanged
> signal. In the case of the lock screen, the pointer hasn't actually moved
> but usually a HoverEnter would be occurring as a result of pointer movement
> and so a positionChanged signal makes sense, which I think was the point
> being made in the Qt bug report. I'm not sure the Qt Company will be
> particularly interested in complicating their code to deal with this edge
> case. If this behavior had been in place from the start, KDE would have
> needed to work around it anyway.

The point being made in the QTBUG-127122 was, that the after actively moving of the mouse into the MouseArea for the first time, the positionChanged signal was not fired. The Mouse was moved from -1,-1 to 25,25, so it was positioned from outside the MouseArea into it upon movement.

Have a look at the QDEBUG messages within the bug rebort:
The onPositionChanged signal is missing for the first time.

this is the kind of output I got

```

QDEBUG : MouseArea::test_mouse_move() qml: move to -1,-1
QDEBUG : MouseArea::test_mouse_move() qml: move to 25,25
QDEBUG : MouseArea::test_mouse_move() qml: onEntered
QDEBUG : MouseArea::test_mouse_move() qml: move to 50,50
QDEBUG : MouseArea::test_mouse_move() qml: onPositionChanged 50 , 50
QDEBUG : MouseArea::test_mouse_move() qml: move to 100,100
QDEBUG : MouseArea::test_mouse_move() qml: onExited
QDEBUG : MouseArea::test_mouse_move() qml: move to 150,150
QDEBUG : MouseArea::test_mouse_move() qml: onEntered
QDEBUG : MouseArea::test_mouse_move() qml: move to 175,175
QDEBUG : MouseArea::test_mouse_move() qml: onPositionChanged 175 , 175

```
Comment 14 fhortner 2025-03-24 16:18:28 UTC
Qt Bug Report:
https://bugreports.qt.io/browse/QTBUG-135099
Comment 15 Ketan 2025-03-24 16:23:48 UTC
(In reply to Marc Payne from comment #8)
> I've been seeing this 'immediate password prompt' issue on several systems,
> all running Arch. I've compared package versions between affected and
> not-affected systems and have concluded that it is the update of Qt 6.8.1 ->
> 6.8.2 causing this.
> 
> I added some additional logging output to LockScreenUi.qml
> (/usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/) and
> it seems that Item::MouseArea::onPositionChanged is being called immediately
> even when the system is idle (no mouse movement), setting uiVisible = true.
> A quick search of the Qt 6.8.2 release notes finds QTBUG-127122 - this is an
> intentional change emitting the positionChanged event in response to a
> QEvent::HoverEnter event. No matter where the pointer is positioned, it will
> enter the newly created full-screen MouseArea when the lock screen is
> displayed and onPositionChanged will be called.
> 
> I have temporarily fixed the issue on a couple of systems by introducing a
> new boolean property 'ignorePositionChanged' and using it to make the first
> call of onPositionChanged a no-op (uiVisible = !ignorePositionChanged;
> ignorePositionChanged = false). I don't have any experience with Qt so
> perhaps there is a more elegant solution.

Are you able to share what you've changed in the LockScreenUI.qml file to temporarily fix this? Or even attach your edited LockScreenUI.qml file? Thank you!
Comment 16 Marc Payne 2025-03-24 16:56:06 UTC
Created attachment 179700 [details]
Temporary fix
Comment 17 Marc Payne 2025-03-24 16:58:16 UTC
(In reply to Ketan from comment #15)
> (In reply to Marc Payne from comment #8)
> > I've been seeing this 'immediate password prompt' issue on several systems,
> > all running Arch. I've compared package versions between affected and
> > not-affected systems and have concluded that it is the update of Qt 6.8.1 ->
> > 6.8.2 causing this.
> > 
> > I added some additional logging output to LockScreenUi.qml
> > (/usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/) and
> > it seems that Item::MouseArea::onPositionChanged is being called immediately
> > even when the system is idle (no mouse movement), setting uiVisible = true.
> > A quick search of the Qt 6.8.2 release notes finds QTBUG-127122 - this is an
> > intentional change emitting the positionChanged event in response to a
> > QEvent::HoverEnter event. No matter where the pointer is positioned, it will
> > enter the newly created full-screen MouseArea when the lock screen is
> > displayed and onPositionChanged will be called.
> > 
> > I have temporarily fixed the issue on a couple of systems by introducing a
> > new boolean property 'ignorePositionChanged' and using it to make the first
> > call of onPositionChanged a no-op (uiVisible = !ignorePositionChanged;
> > ignorePositionChanged = false). I don't have any experience with Qt so
> > perhaps there is a more elegant solution.
> 
> Are you able to share what you've changed in the LockScreenUI.qml file to
> temporarily fix this? Or even attach your edited LockScreenUI.qml file?
> Thank you!

Sure, I've attached a diff which will apply with the patch command. Or you can apply the changes by hand. It just introduces an additional boolean property and modifies the onPositionChanged handler.
Comment 18 Ketan 2025-03-24 17:25:20 UTC
(In reply to Marc Payne from comment #17)
> (In reply to Ketan from comment #15)
> > (In reply to Marc Payne from comment #8)
> > > I've been seeing this 'immediate password prompt' issue on several systems,
> > > all running Arch. I've compared package versions between affected and
> > > not-affected systems and have concluded that it is the update of Qt 6.8.1 ->
> > > 6.8.2 causing this.
> > > 
> > > I added some additional logging output to LockScreenUi.qml
> > > (/usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/) and
> > > it seems that Item::MouseArea::onPositionChanged is being called immediately
> > > even when the system is idle (no mouse movement), setting uiVisible = true.
> > > A quick search of the Qt 6.8.2 release notes finds QTBUG-127122 - this is an
> > > intentional change emitting the positionChanged event in response to a
> > > QEvent::HoverEnter event. No matter where the pointer is positioned, it will
> > > enter the newly created full-screen MouseArea when the lock screen is
> > > displayed and onPositionChanged will be called.
> > > 
> > > I have temporarily fixed the issue on a couple of systems by introducing a
> > > new boolean property 'ignorePositionChanged' and using it to make the first
> > > call of onPositionChanged a no-op (uiVisible = !ignorePositionChanged;
> > > ignorePositionChanged = false). I don't have any experience with Qt so
> > > perhaps there is a more elegant solution.
> > 
> > Are you able to share what you've changed in the LockScreenUI.qml file to
> > temporarily fix this? Or even attach your edited LockScreenUI.qml file?
> > Thank you!
> 
> Sure, I've attached a diff which will apply with the patch command. Or you
> can apply the changes by hand. It just introduces an additional boolean
> property and modifies the onPositionChanged handler.

thank you so much! this fix worked perfectly!
Comment 19 TraceyC 2025-04-16 15:07:28 UTC
*** Bug 500694 has been marked as a duplicate of this bug. ***
Comment 20 TraceyC 2025-04-18 16:56:47 UTC
*** Bug 499893 has been marked as a duplicate of this bug. ***
Comment 21 Nate Graham 2025-04-18 17:28:36 UTC
*** Bug 500357 has been marked as a duplicate of this bug. ***