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

            Bug ID: 461327
           Summary: kscreenlocker_greet crashed in
                    QtWayland::wl_surface::object
    Classification: Plasma
           Product: kscreenlocker
           Version: 5.26.2
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: greeter
          Assignee: plasma-b...@kde.org
          Reporter: matt.fagn...@bell.net
                CC: bhus...@gmail.com
  Target Milestone: ---

SUMMARY

I booted the Fedora Rawhide live image
Fedora-KDE-Live-x86_64-Rawhide-20221102.n.0.iso
https://koji.fedoraproject.org/koji/buildinfo?buildID=2083154 in GNOME Boxes
QEMU/KVM VM with 3 GiB RAM and 3D acceleration enabled in a Fedora 37 KDE
Plasma installation. Plasma 5.26.2 on Wayland started. I left the VM idle for
several minutes. The VM's screen had the following message when I used it
again. "The screen locker is broken and unlocking isn't possible anymore. In
order to unlock switch to a virtual terminal (e.g. Ctrl+Alt+F2), log in and
execute the command: loginctl unlock-session 1 Then log out of the virtual
session with Ctrl+D, and switch back to the running session (Ctrl+Alt+F1)."
After I followed those instructions, I saw /usr/libexec/kscreenlocker_greet
crashed in the journal, but coredumpctl didn't show the crash. I reproduced the
crash by running /usr/libexec/kscreenlocker_greet and
/usr/libexec/kscreenlocker_greet --testing in konsole. coredumpctl gdb showed
that QtWayland::wl_surface::object with an argument this=0x10 which looked like
an invalid pointer (null plus an offset)

Core was generated by `/usr/libexec/kscreenlocker_greet --testing'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f64ad9c8da6 in QtWayland::wl_surface::object (this=0x10)
    at
/usr/include/qt5/QtWaylandClient/5.15.6/QtWaylandClient/private/qwayland-wayland.h:637
637    
/usr/include/qt5/QtWaylandClient/5.15.6/QtWaylandClient/private/qwayland-wayland.h:
No such file or directory.
[Current thread is 1 (Thread 0x7f64ad5cfe80 (LWP 2622))]
(gdb) bt
#0  0x00007f64ad9c8da6 in QtWayland::wl_surface::object (this=0x10)
    at
/usr/include/qt5/QtWaylandClient/5.15.6/QtWaylandClient/private/qwayland-wayland.h:637
#1  LayerShellQt::QWaylandLayerSurface::QWaylandLayerSurface (this=<optimized
out>, shell=<optimized out>, 
    window=<optimized out>, this=<optimized out>, shell=<optimized out>,
window=<optimized out>)
    at
/usr/src/debug/layer-shell-qt-5.26.2-1.fc38.x86_64/src/qwaylandlayersurface.cpp:38
#2  0x00007f64ad9c95b9 in LayerShellQt::QWaylandLayerShell::createLayerSurface
(this=0x55af214b65e0, 
    window=0x55af217cf540) at
/usr/src/debug/layer-shell-qt-5.26.2-1.fc38.x86_64/src/qwaylandlayershell.cpp:26
#3  0x00007f64ab929515 in QtWaylandClient::QWaylandWindow::initWindow
(this=0x55af217cf540)
    at
/usr/src/debug/qt5-qtwayland-5.15.7-1.fc38.x86_64/src/client/qwaylandwindow.cpp:141
#4  0x00007f64ab92984d in QtWaylandClient::QWaylandWindow::setVisible
(visible=<optimized out>, 
    this=0x55af217cf540) at
/usr/src/debug/qt5-qtwayland-5.15.7-1.fc38.x86_64/src/client/qwaylandwindow.cpp:436
#5  QtWaylandClient::QWaylandWindow::setVisible (this=0x55af217cf540,
visible=<optimized out>)
    at
/usr/src/debug/qt5-qtwayland-5.15.7-1.fc38.x86_64/src/client/qwaylandwindow.cpp:428
#6  0x00007f64ac176097 in QWindowPrivate::setVisible(bool) () from
/lib64/libQt5Gui.so.5
#7  0x000055af1f7097bf in ScreenLocker::UnlockApp::createViewForScreen
(this=this@entry=0x7ffd63c765e0, 
    screen=screen@entry=0x55af2112c790)
    at
/usr/src/debug/kscreenlocker-5.26.2-1.fc38.x86_64/greeter/greeterapp.cpp:417
#8  0x000055af1f709f34 in ScreenLocker::UnlockApp::handleScreen
(this=this@entry=0x7ffd63c765e0, 
    screen=0x55af2112c790) at
/usr/src/debug/kscreenlocker-5.26.2-1.fc38.x86_64/greeter/greeterapp.cpp:306
#9  0x000055af1f700de0 in ScreenLocker::UnlockApp::initialViewSetup
(this=0x7ffd63c765e0)
    at
/usr/src/debug/kscreenlocker-5.26.2-1.fc38.x86_64/greeter/greeterapp.cpp:296
#10 main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kscreenlocker-5.26.2-1.fc38.x86_64/greeter/main.cpp:187

The journal showed errors like the following at the times of the crashes.

Nov 02 12:32:44 kscreenlocker_greet[2291]: kscreenlocker_greet: Lockscreen QML
outdated, falling back to default
Nov 02 12:32:46 kernel: Lockdown: systemd-logind: hibernation is restricted;
see man kernel_lockdown.7
Nov 02 12:32:46 kernel: Lockdown: systemd-logind: hibernation is restricted;
see man kernel_lockdown.7
Nov 02 12:32:46 kernel: Lockdown: systemd-logind: hibernation is restricted;
see man kernel_lockdown.7
Nov 02 12:32:46 kscreenlocker_greet[2291]: kf.kirigami: Failed to find a
Kirigami platform plugin
Nov 02 12:32:47 kernel: show_signal_msg: 3 callbacks suppressed
Nov 02 12:32:47 kernel: kscreenlocker_g[2291]: segfault at 18 ip
00007ff9e1838da6 sp 00007fff131564d0 error 4 in
libLayerShellQtInterface.so.5.26.2[7ff9e1837000+3000] likely on CPU 3 (core 3,
socket 0)
Nov 02 12:32:47 kernel: Code: 8d 64 24 38 48 89 44 24 28 48 89 ee 4c 89 e7 e8
10 e8 ff ff 48 89 ef e8 08 e9 ff ff 4c 89 e6 4c 89 ef 89 44 24 24 49 8b 46 30
<4c> 8b 48 18 4c 89 4c 24 18 e8 cc e9 ff ff 48 8b 44 24 40 4d 8b 7f
Nov 02 12:32:47 audit[2291]: ANOM_ABEND auid=1000 uid=1000 gid=1000 ses=2
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=2291
comm="kscreenlocker_g" exe="/usr/libexec/kscreenlocker_greet" sig=11 res=1
Nov 02 12:32:47 kwin_wayland_wrapper[1467]: not a valid new object id (2),
message get_registry(n)
Nov 02 12:32:47 kwin_wayland_wrapper[1467]: error in client communication (pid
1467)
Nov 02 12:32:47 kwin_wayland_wrapper[2312]: wl_display@1: error 1: invalid
arguments for wl_display@1.get_registry
Nov 02 12:32:47 kscreenlocker_greet[2312]: qt.qpa.wayland: Creating a fake
screen in order for Qt not to crash
Nov 02 12:32:47 kscreenlocker_greet[2312]: The Wayland connection experienced a
fatal error: Invalid argument
Nov 02 12:32:47 kscreenlocker_greet[2316]: qt.qpa.wayland: Creating a fake
screen in order for Qt not to crash
Nov 02 12:32:47 kscreenlocker_greet[2316]: The Wayland connection broke. Did
the Wayland compositor die?
Nov 02 12:32:48 kscreenlocker_greet[2320]: qt.qpa.wayland: Creating a fake
screen in order for Qt not to crash
Nov 02 12:32:48 kscreenlocker_greet[2320]: The Wayland connection broke. Did
the Wayland compositor die?

STEPS TO REPRODUCE
1. Boot a Fedora 37 KDE Plasma installation updated to 2022-11-2 with the
updates-testing repo enabled.
2. Log in to Plasma 5.26.2 on Wayland
3. Install GNOME Boxes if it isn't already with sudo dnf install gnome-boxes
4. Download the Fedora Rawhide live image
Fedora-KDE-Live-x86_64-Rawhide-20221102.n.0.iso
https://koji.fedoraproject.org/koji/buildinfo?buildID=2083154 
5. start GNOME Boxes
6. start a QEMU/KVM VM using the image
Fedora-KDE-Live-x86_64-Rawhide-20221102.n.0.iso  with 3 GiB RAM and 3D
acceleration enabled in the settings
7. Once Plasma 5.26.2 on Wayland started, leave the VM idle for several minutes
until the screen locker error screen appears. The screen locking time is set to
5 minutes in System Settings.

OBSERVED RESULT
kscreenlocker_greet crashed in QtWayland::wl_surface::object each of a few
times that kscreenlocker_greet ran

EXPECTED RESULT
kscreenlocker_greet wouldn't crash

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora Rawhide/38
(available in About System)
KDE Plasma Version: 5.26.2
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.7

ADDITIONAL INFORMATION

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

Reply via email to