kwin_wayland 6.7.0 randomly crashes when system is idle. I didn't have this issue with the previous version (6.6.5). STEPS TO REPRODUCE 1. Launch plasma session 2. Wait OBSERVED RESULT kwin crashes with segmentation fault EXPECTED RESULT kwin shouldn't crash SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 6.7.0 KDE Frameworks Version: 6.27.0 Qt Version: 6.11.1 ADDITIONAL INFORMATION GPU: RTX 2080 SUPER GPU Drivers version: 610.43.02 #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f235169a363 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89 #2 0x00007f235163e7d0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007f23553f901d in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.27.0/src/kcrash.cpp:630 #4 0x00007f235163e8f0 in <signal handler called> () at /usr/lib/libc.so.6 #5 0x00007f2354f0981c in KWin::DrmAtomicCommit::addProperty (this=0x7f230c014870, prop=..., value=1) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_commit.cpp:61 #6 0x00007f2354f07751 in KWin::DrmAbstractColorOp::matchPipeline (this=0x5637c07ff350, commit=0x7f230c010f20, pipeline=...) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_colorop.cpp:262 #7 0x00007f2354f43553 in operator() (__closure=<synthetic pointer>, pipeline=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:281 #8 std::__invoke_impl<bool, KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)>&, KWin::DrmColorOp* const&> (__f=<synthetic pointer>...) at /usr/include/c++/16.1.1/bits/invoke.h:63 #9 std::__invoke<KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)>&, KWin::DrmColorOp* const&> (__fn=<synthetic pointer>...) at /usr/include/c++/16.1.1/bits/invoke.h:98 #10 std::ranges::__find_if_fn::operator()<QList<KWin::DrmColorOp*>::const_iterator, QList<KWin::DrmColorOp*>::const_iterator, std::identity, KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)> > (this=<optimized out>, __proj=..., __first=..., __last=..., __pred=...) at /usr/include/c++/16.1.1/bits/ranges_util.h:560 #11 std::ranges::__find_if_fn::operator()<QList<KWin::DrmColorOp*> const&> (this=<optimized out>, __proj=..., __r=<synthetic pointer>..., __pred=...) at /usr/include/c++/16.1.1/bits/ranges_util.h:571 #12 KWin::DrmPipeline::prepareAtomicPlane (this=this@entry=0x5637c087e720, commit=commit@entry=0x7f230c010f20, plane=0x5637c079afa0, layer=0x5637c0921490, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:280 #13 0x00007f2354f43c99 in KWin::DrmPipeline::prepareAtomicCommit (this=0x5637c087e720, commit=commit@entry=0x7f230c010f20, mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:189 #14 0x00007f2354f441a3 in KWin::DrmPipeline::prepareAtomicCommit (this=<optimized out>, commit=<optimized out>, mode=<optimized out>, frame=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_crtc.cpp:125 #15 KWin::DrmPipeline::commitPipelinesAtomic (pipelines=..., mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}, unusedObjects=...) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:128 #16 0x00007f2354f4469c in KWin::DrmPipeline::testPresent (this=0x5637c087e720, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:61 #17 KWin::DrmPipeline::testPresent (this=0x5637c087e720, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:53 #18 0x00007f2354f359f9 in KWin::DrmOutput::testPresentation (this=0x5637c087ec30, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_output.cpp:307 #19 0x00007f2354ba5ebd in KWin::Compositor::setupLayers (this=this@entry=0x5637c0b26d90, sceneView=sceneView@entry=0x5637c158cfe0, logicalOutput=<optimized out>, backendOutput=<optimized out>, outputLayers=..., assignments=<optimized out>, frame=<optimized out>, type=<optimized out>, toUpdate=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:650 #20 0x00007f2354ba7a47 in KWin::Compositor::composite (this=<optimized out>, renderLoop=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:776 #21 0x00007f2351ff081b in QtPrivate::QSlotObjectBase::call (this=0x5637c1678c80, r=<optimized out>, a=0x7fffe47e56e0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:462 #22 doActivate<false> (sender=0x5637c080a1b0, signal_index=5, argv=0x7fffe47e56e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4372 #23 0x00007f2354bff17b in QMetaObject::activate<void, KWin::RenderLoop*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=2, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:320 #24 KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_renderloop.cpp:171 #25 0x00007f2351fe7cf9 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1454 #26 0x00007f235330411f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5637c080a1b0, e=0x7fffe47e5880) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3276 #27 0x00007f2351f83658 in QCoreApplication::notifyInternal2 (receiver=0x5637c080a1b0, event=0x7fffe47e5880) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1114 #28 0x00007f235216b2f5 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7fffe47e5880) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1559 #29 QTimerInfoList::activateTimers (this=0x5637c02caac8) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:427 #30 0x00007f2352176bd2 in QEventDispatcherUNIXPrivate::activateTimers (this=0x5637c02ca9f0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:222 #31 QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:504 #32 0x00007f2352f83543 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:28 #33 0x00007f2351f91983 in QEventLoop::processEvents (this=0x7fffe47e5a60, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:109 #34 QEventLoop::exec (this=0x7fffe47e5a60, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:198 #35 0x00007f2351f86eaa in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1457 #36 0x00007f235330033a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2546 #37 0x000056379477d040 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/main_wayland.cpp:660
Created attachment 193467 [details] My AI hermes made a fix for this issue I am using fedora44 KDE6.7, my laptop pops windows to say kwin crashed several times these days. Yesterday I found if I left the computer for a while it's screen will go dark and I can't light the screen by press any key of my keyboard. I can only press the power button and close the computer forcely and restart it. And there's another phenomenan, if I play some videos in my mpv player and click stop for a while, the mpv player will crash and a window will pop out to say the kwin crashed. My AI agent Hermes found someone raised this bug after searching for the Internet and told me we can download the source code of kwin and make a fix and compile it then install it to my computer. The attachment is the fix patch my hermes ai agent told me to upload to this page.
(In reply to Raymond Wang from comment #1) > Created attachment 193467 [details] > My AI hermes made a fix for this issue > > I am using fedora44 KDE6.7, my laptop pops windows to say kwin crashed > several times these days. Yesterday I found if I left the computer for a > while it's screen will go dark and I can't light the screen by press any key > of my keyboard. I can only press the power button and close the computer > forcely and restart it. > And there's another phenomenan, if I play some videos in my mpv player and > click stop for a while, the mpv player will crash and a window will pop out > to say the kwin crashed. > My AI agent Hermes found someone raised this bug after searching for the > Internet and told me we can download the source code of kwin and make a fix > and compile it then install it to my computer. The attachment is the fix > patch my hermes ai agent told me to upload to this page. Proposed fix: cache DrmObject ID to prevent use-after-free in DrmAtomicCommit::addProperty
Based on the backtrace this looks like a duplicate of bug 520842 so I'll merge this report in with the other one. Please follow that report if you would like updates on the progress of this issue. *** This bug has been marked as a duplicate of bug 520842 ***