Bug 478815

Summary: kscreenlocker_greet fails to display UI after upgrade to beta 2, blocks screen forcing intervention / reboot
Product: [Plasma] kscreenlocker Reporter: Adam Fontenot <adam.m.fontenot+kde>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: critical CC: alien, andrej.halv, edwin.frank.loeffler, nate
Priority: NOR Keywords: qt6
Version: 5.91.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Adam Fontenot 2023-12-21 04:34:58 UTC
SUMMARY
I upgraded Arch Linux from Beta 1 to Beta 2. I will keep an eye on this bug over the next several days and close this bug if it resolves itself due to packaging issues.

Might be related to upgrading to Qt 6.7? This is a regression from Beta 1 on the same system.

STEPS TO REPRODUCE
1. Allow the screen to try to lock itself, or launch /usr/lib/kscreenlocker_greet from the terminal

OBSERVED RESULT
An opaque full screen window blocks the screen, but no UI elements appear on it. If launched from the terminal, the following is printed:

QQmlComponent: Component is not ready
kf.plasma.quick: "file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml" 
 "Error loading QML file.\n53: Type ImageStackView unavailable\nmodule \"org.kde.breeze\" is not installed\n"
QQmlComponent: Component is not ready
kf.plasma.quick: "file:///usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreen.qml" 
 "Error loading QML file.\n33: Type LockScreenUi unavailable\nmodule \"org.kde.breeze\" is not installed\n"
kscreenlocker_greet: Failed to load lockscreen QML, falling back to built-in locker
kscreenlocker_greet: file:///usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreen.qml:33:5: Type LockScreenUi unavailable 
         LockScreenUi { 
         ^
kscreenlocker_greet: file:///usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreenUi.qml: module "org.kde.breeze" is not installed
KDeclarativeMouseEvent is both anonymous and named
KDeclarativeWheelEvent is both anonymous and named
QQmlComponent: Component is not ready
kf.plasma.quick: "qrc:/fallbacktheme/LockScreen.qml" 
 "Error loading QML file.\nmodule \"org.kde.breeze\" is not installed\n"
kscreenlocker_greet: Wallpaper needs to be a QtQuick Item

EXPECTED RESULT
screenlocker opens normally

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 5.91.0
KDE Frameworks Version: 5.247.0
Qt Version: 6.7.0beta1-2
Kernel Version: 6.6.7-arch1-1 (64-bit)
Graphics Platform: Wayland
Comment 1 Adam Fontenot 2023-12-21 04:41:17 UTC
The same thing happens when trying to end a session with the logout greeter. Running this in windowed mode:

/usr/lib/ksmserver-logout-greeter --windowed
QQmlComponent: Component is not ready
kf.plasma.quick: "file:///usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/logout/Logout.qml" 
 "Error loading QML file.\nmodule \"org.kde.breeze\" is not installed\n"
kde.logout_greeter: QList(file:///usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/logout/Logout.qml: module "org.kde.breeze" is not installed)
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::logoutRequested() to KSMShutdownDlg::slotLogout()
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::haltRequested() to KSMShutdownDlg::slotHalt()
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::suspendRequested(int) to KSMShutdownDlg::slotSuspend(int)
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::rebootRequested() to KSMShutdownDlg::slotReboot()
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::rebootRequested2(int) to KSMShutdownDlg::slotReboot(int)
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::cancelRequested() to KSMShutdownDlg::reject()
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::lockScreenRequested() to KSMShutdownDlg::slotLockScreen()
qt.core.qobject.connect: QObject::connect: Cannot connect (nullptr)::cancelSoftwareUpdateRequested() to KSMShutdownDlg::slotCancelSoftwareUpdate()
kf.windowsystem: static bool KX11Extras::compositingActive() may only be used on X11
Comment 2 edwloef 2023-12-21 10:29:08 UTC
Can confirm this issue, also on Arch Linux and KDE Plasma 6.0 Beta 2
Comment 3 Nate Graham 2023-12-21 20:24:12 UTC
> ImageStackView unavailable\nmodule \"org.kde.breeze\" is not installed

Fixed with https://invent.kde.org/plasma/plasma-integration/-/merge_requests/126, and also kind of https://invent.kde.org/plasma/kscreenlocker/-/commit/cd73456b1af32129a4ab97a686c940a26d77cdf5.

As a workaround, you can install the package for the Breeze qqc2 style.
Comment 4 Eric Hameleers 2023-12-24 10:44:30 UTC
Thanks, I ran into a similar issue preparing for a Slackware release of Plasma6 Beta2: logout from the desktop stalled (the logout greeter would not appear) and I would be forced to logon remotely and change the runlevel, or else forcibly reboot.
The error messages in SDDM's xorg and wailand logs brought me to this bug report and indeed I did not include a qqc2-breeze-style package assuming it would be used by Plasma Mobile only. I am going to add that package now if it is a workaround to the bug. Thanks for fixing it in git.