Bug 489309 - After update to Qt 6.7.2, plasmashell crashes when trying to display the screen locker
Summary: After update to Qt 6.7.2, plasmashell crashes when trying to display the scre...
Status: RESOLVED DUPLICATE of bug 489180
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 6.1.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-27 13:14 UTC by Pavel Urusov
Modified: 2024-06-27 19:14 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Urusov 2024-06-27 13:14:04 UTC
SUMMARY
After update to Qt 6.7.2, plasmashell started crashing when trying to display the screen locker after waking the PC from sleep. The user gets the message "The screen locker is broken and unlocking is not possible anymore".

The issue happens approximately 30% of the time, meaning that out of 10 attempts to wake the computer, 3 would result in plasmashell crashing.

STEPS TO REPRODUCE
1. Lock the screen and wait until the computer goes to sleep / the monitors turn off
2. Wake up the PC by pressing any key on the keyboard / moving the mouse
3. Observe the issue

OBSERVED RESULT

The user gets the message "The screen locker is broken and unlocking is not possible anymore" together with instructions for unlocking the screen from tty.

EXPECTED RESULT

plasmashell does not crash / screen locker is displayed as usual.

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20240625
KDE Plasma Version: 6.1.0
KDE Frameworks Version: 6.3.0
Qt Version: 6.7.2
Kernel Version: 6.9.6-1-default (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX 560 Series

ADDITIONAL INFORMATION

Core was generated by `/usr/bin/plasmashell --no-respawn'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f6ab84949dc in __pthread_kill_implementation () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f6a77e006c0 (LWP 21309))]
(gdb) bt
#0  0x00007f6ab84949dc in __pthread_kill_implementation () from /lib64/libc.so.6
#1  0x00007f6ab8441176 in raise () from /lib64/libc.so.6
#2  0x00007f6abb905c03 in KCrash::defaultCrashHandler(int) () from /lib64/libKF6Crash.so.6
#3  <signal handler called>
#4  0x00007f6ababdcc84 in QtWaylandClient::QWaylandWindow::waylandScreen() const ()
   from /lib64/libQt6WaylandClient.so.6
#5  0x00007f6ababdf6cf in QtWaylandClient::QWaylandWindow::scale() const () from /lib64/libQt6WaylandClient.so.6
#6  0x00007f6ab478f652 in QtWaylandClient::QWaylandEglWindow::updateSurface(bool) ()
   from /lib64/libQt6WaylandEglClientHwIntegration.so.6
#7  0x00007f6ab478ffab in QtWaylandClient::QWaylandGLContext::makeCurrent(QPlatformSurface*) ()
   from /lib64/libQt6WaylandEglClientHwIntegration.so.6
#8  0x00007f6ab98d5cea in QOpenGLContext::makeCurrent (this=0x7f69dc010210, surface=0x561ce79384c0)
    at /usr/src/debug/qtbase-everywhere-src-6.7.2/src/gui/kernel/qopenglcontext.cpp:664
#9  0x00007f6ab9a8aa22 in QRhiGles2::ensureContext(QSurface*) const [clone .constprop.0] (this=0x7f69dc001680, 
    surface=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.7.2/src/gui/rhi/qrhigles2.cpp:632
#10 0x00007f6aba865a4b in QSGRenderThread::invalidateGraphics (inDestructor=true, window=0x561ce92ba2f0, 
    this=0x561ce7e01650)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.7.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp:473
#11 QSGRenderThread::event (this=0x561ce7e01650, e=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.7.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp:368
#12 0x00007f6aba8671ca in QSGRenderThread::processEventsAndWaitForMore (this=0x561ce7e01650)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.7.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp:869
#13 QSGRenderThread::run (this=0x561ce7e01650)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.7.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp:991
#14 0x00007f6ab8eed139 in operator() (__closure=<optimized out>)
    at /usr/src/debug/qtbase-everywhere-src-6.7.2/src/corelib/thread/qthread_unix.cpp:326
#15 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...)
    at /usr/src/debug/qtbase-everywhere-src-6.7.2/src/corelib/thread/qthread_unix.cpp:262
#16 QThreadPrivate::start (arg=0x561ce7e01650)
    at /usr/src/debug/qtbase-everywhere-src-6.7.2/src/corelib/thread/qthread_unix.cpp:285
#17 0x00007f6ab8492ba2 in start_thread () from /lib64/libc.so.6
#18 0x00007f6ab851400c in clone3 () from /lib64/libc.so.6
Comment 1 Pavel Urusov 2024-06-27 16:52:30 UTC
After rebooting the system, this issue is basically triggering every time I allow the PC to idle for a while.

E.g. if I wait until it locks and then try to unlock it, it usually works fine; if I go away for 30 minutes and try to unlock it afterwards, plasmashell always crashes.
Comment 2 Nate Graham 2024-06-27 19:14:11 UTC

*** This bug has been marked as a duplicate of bug 489180 ***