Bug 506356 - plasmashell randomly freezing while using system
Summary: plasmashell randomly freezing while using system
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 6.4.1
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL: https://bugreports.qt.io/browse/QTBUG...
Keywords: drkonqi, X11-only
Depends on:
Blocks:
 
Reported: 2025-06-29 18:18 UTC by Sylvie Nightshade
Modified: 2025-08-01 18:05 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/208236/events/4d963833f0204e5dbce26320f1ac28cf/


Attachments
New crash information added by DrKonqi (82.56 KB, text/plain)
2025-06-29 18:18 UTC, Sylvie Nightshade
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sylvie Nightshade 2025-06-29 18:18:35 UTC
Application: plasmashell (6.4.1)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.1
Frameworks Version: 6.15.0
Operating System: Linux 6.12.35-1-lts x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 6.4.1 [CoredumpBackend]

-- Information about the crash:
I was reading visual novel 'Fate/stay night REMASTERED' https://store.steampowered.com/app/2396980/Fatestay_night_REMASTERED/ and then my plasmashell instance froze up completely. I tried to restart it with 'systemctl restart --user plasma-plasmashell', and systemd did kill it, but it never came back up even though it said the service was running. I had to 'loginctl terminate-user' myself to break out of this, and then DrKonqi came up helpfully informing me that plasmashell had segfaulted.

I have done fairly in-depth reverse-engineering on Fate/stay night REMASTERED and can provide the information that this game uses OpenGL 4 to render its graphics. The game is also running through Proton as the developers do not provide a native Linux build.

When this happens, my Discord also starts freezing up and flashing, almost as if it's lost GPU context for hardware-acceleration.

I use Plasma on X11 (believe me I'd use Wayland if I could). Read F/SN by the way.

The crash does not seem to be reproducible.

-- Backtrace (Reduced):
#5  std::__atomic_base<void*>::load (this=<optimized out>, __m=<optimized out>, this=<optimized out>, __m=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.h:173
#6  std::atomic<void*>::load (this=<optimized out>, __m=<optimized out>, this=<optimized out>, __m=<optimized out>) at /usr/include/c++/15.1.1/atomic:587
#7  QAtomicOps<void*>::loadRelaxed<void*> (_q_value=<optimized out>, _q_value=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qatomic_cxx11.h:202
#8  QBasicAtomicPointer<void>::loadRelaxed (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qbasicatomic.h:170
#9  QRecursiveMutex::tryLock (this=this@entry=0x20, timeout=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qmutex.cpp:341
#10 0x000071fbc0393e31 in QRecursiveMutex::lock (this=0x20, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qmutex.h:189
#11 QMutexLocker<QRecursiveMutex>::QMutexLocker (this=<synthetic pointer>, mutex=0x20, this=<optimized out>, mutex=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qmutex.h:236
#12 QOpenGLMultiGroupSharedResource::value<QOpenGLFunctionsPrivateEx> (this=0x0, context=0x71fb680024a0) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qopenglcontext_p.h:142
#13 qt_gl_functions (context=0x71fb680024a0) at /usr/src/debug/qt6-base/qtbase/src/gui/opengl/qopenglfunctions.cpp:157
#14 0x000071fbc03943ee in qopenglfSpecialClearDepthf (depth=1) at /usr/src/debug/qt6-base/qtbase/src/gui/opengl/qopenglfunctions.cpp:2118
#15 0x000071fbc03a2875 in QOpenGLFunctions::glClearDepthf (this=<optimized out>, depth=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/opengl/qopenglfunctions.h:1212
#16 QRhiGles2::executeCommandBuffer (this=this@entry=0x71fb68001920, cb=cb@entry=0x71fb681c93d0) at /usr/src/debug/qt6-base/qtbase/src/gui/rhi/qrhigles2.cpp:3474
#17 0x000071fbc03a5e8f in QRhiGles2::endFrame (this=0x71fb68001920, swapChain=0x71fb681c8e80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/rhi/qrhigles2.cpp:2287
#18 0x000071fbc01f962c in QRhi::endFrame (this=0x71fb68001900, swapChain=0x71fb681c8e80, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/gui/rhi/qrhi.cpp:11226
#19 0x000071fbc14ab5c8 in QSGRenderThread::syncAndRender (this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:771
#20 QSGRenderThread::run (this=0x5fedeb947060) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:975
#5  std::__atomic_base<void*>::load (this=<optimized out>, __m=<optimized out>, this=<optimized out>, __m=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.h:173
#6  std::atomic<void*>::load (this=<optimized out>, __m=<optimized out>, this=<optimized out>, __m=<optimized out>) at /usr/include/c++/15.1.1/atomic:587
#7  QAtomicOps<void*>::loadRelaxed<void*> (_q_value=<optimized out>, _q_value=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qatomic_cxx11.h:202
#8  QBasicAtomicPointer<void>::loadRelaxed (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qbasicatomic.h:170
#9  QRecursiveMutex::tryLock (this=this@entry=0x20, timeout=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qmutex.cpp:341
#10 0x000071fbc0393e31 in QRecursiveMutex::lock (this=0x20, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qmutex.h:189
#11 QMutexLocker<QRecursiveMutex>::QMutexLocker (this=<synthetic pointer>, mutex=0x20, this=<optimized out>, mutex=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qmutex.h:236
#12 QOpenGLMultiGroupSharedResource::value<QOpenGLFunctionsPrivateEx> (this=0x0, context=0x71fb680024a0) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qopenglcontext_p.h:142
#13 qt_gl_functions (context=0x71fb680024a0) at /usr/src/debug/qt6-base/qtbase/src/gui/opengl/qopenglfunctions.cpp:157
#14 0x000071fbc03943ee in qopenglfSpecialClearDepthf (depth=1) at /usr/src/debug/qt6-base/qtbase/src/gui/opengl/qopenglfunctions.cpp:2118
#15 0x000071fbc03a2875 in QOpenGLFunctions::glClearDepthf (this=<optimized out>, depth=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/opengl/qopenglfunctions.h:1212
#16 QRhiGles2::executeCommandBuffer (this=this@entry=0x71fb68001920, cb=cb@entry=0x71fb681c93d0) at /usr/src/debug/qt6-base/qtbase/src/gui/rhi/qrhigles2.cpp:3474
#17 0x000071fbc03a5e8f in QRhiGles2::endFrame (this=0x71fb68001920, swapChain=0x71fb681c8e80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/rhi/qrhigles2.cpp:2287
#18 0x000071fbc01f962c in QRhi::endFrame (this=0x71fb68001900, swapChain=0x71fb681c8e80, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/gui/rhi/qrhi.cpp:11226
#19 0x000071fbc14ab5c8 in QSGRenderThread::syncAndRender (this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:771
#20 QSGRenderThread::run (this=0x5fedeb947060) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:975


Reported using DrKonqi
Comment 1 Sylvie Nightshade 2025-06-29 18:18:36 UTC
Created attachment 182783 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 TraceyC 2025-07-03 16:37:39 UTC
Thanks for the bug report. This looks to be in Qt code. It might be one of these

https://bugreports.qt.io/browse/QTBUG-103006
https://bugreports.qt.io/browse/QTBUG-103516
Comment 3 Nate Graham 2025-08-01 18:05:21 UTC
Yep, looks like https://bugreports.qt.io/browse/QTBUG-103006.