Bug 514953 - kwin_wayland suddenly crashed with SIGABRT when destructing KDecoration3::DecorationShadow::Private
Summary: kwin_wayland suddenly crashed with SIGABRT when destructing KDecoration3::Dec...
Status: REPORTED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 6.5.5
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-23 01:13 UTC by Raccoon
Modified: 2026-01-23 16:08 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
backtrace of kwin_wayland (112.13 KB, text/vnd.kde.kcrash-report)
2026-01-23 01:13 UTC, Raccoon
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Raccoon 2026-01-23 01:13:02 UTC
Created attachment 188799 [details]
backtrace of kwin_wayland

I was just playing Resonite while all my screens went black for a second and recovered. The game was still running but the window was gone, I could still hear game audio. Steam, Waterfox, Vesktop and LACT were taken down too.

STEPS TO REPRODUCE
I was not able to reproduce

OBSERVED RESULT


EXPECTED RESULT
no crashing

SOFTWARE/OS VERSIONS

Operating System: Arch Linux 
KDE Plasma Version: 6.5.5
KDE Frameworks Version: 6.22.0
Qt Version: 6.10.1
Kernel Version: 6.18.6-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 32 × AMD Ryzen 9 7950X3D 16-Core Processor
Memory: 64 GiB of RAM (61.9 GiB usable)
Graphics Processor 1: AMD Radeon RX 7600 XT
Graphics Processor 2: AMD Ryzen 9 7950X3D 16-Core Processor

ADDITIONAL INFORMATION
Comment 1 Akseli Lahtinen 2026-01-23 11:28:28 UTC
Searchable backtrace

Thread 1 (Thread 0x7f1545d76b80 (LWP 1855)):
[KCrash Handler]
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6  0x00007f154c6989d3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#7  0x00007f154c63e3a0 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007f154c62557a in __GI_abort () at abort.c:77
#9  0x00007f154c626613 in __libc_message_impl (fmt=fmt@entry=0x7f154c7b3355 "%s\n") at ../sysdeps/posix/libc_fatal.c:138
#10 0x00007f154c6a2d25 in malloc_printerr (str=str@entry=0x7f154c7b65b0 "free(): invalid next size (fast)") at malloc.c:5895
#11 0x00007f154c6a4ff6 in _int_free_chunk (av=<optimized out>, p=<optimized out>, size=<optimized out>, have_lock=have_lock@entry=0) at malloc.c:4670
#12 0x00007f154c6a7ff4 in __GI___libc_free (mem=<optimized out>) at malloc.c:3571
#13 0x00007f154cab062a in operator delete (ptr=ptr@entry=0x563ccc4aa0c0) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/del_op.cc:49
#14 0x00007f154cab063a in operator delete (ptr=ptr@entry=0x563ccc4aa0c0) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/del_ops.cc:33
#15 0x00007f154d9090f0 in QScopedPointerDeleter<QRasterizer>::cleanup (pointer=0x563ccc4aa0c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h:24
#16 QScopedPointer<QRasterizer, QScopedPointerDeleter<QRasterizer> >::~QScopedPointer (this=0x563cce4a30a0, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h:81
#17 QRasterPaintEnginePrivate::~QRasterPaintEnginePrivate (this=0x563cce4a2a40, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/painting/qpaintengine_raster_p.h:232
#18 0x00007f154d909455 in QRasterPaintEnginePrivate::~QRasterPaintEnginePrivate (this=0x563cce4a2a40, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/painting/qpaintengine_raster_p.h:232
#19 0x00007f154d8ffed6 in QScopedPointerDeleter<QPaintEnginePrivate>::cleanup (pointer=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h:24
#20 QScopedPointer<QPaintEnginePrivate, QScopedPointerDeleter<QPaintEnginePrivate> >::~QScopedPointer (this=0x563ccd90ca68, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h:81
#21 QPaintEngine::~QPaintEngine (this=0x563ccd90ca50, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/painting/qpaintengine.cpp:693
#22 QPaintEngineEx::~QPaintEngineEx (this=0x563ccd90ca50, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/painting/qpaintengineex_p.h:39
#23 QRasterPaintEngine::~QRasterPaintEngine (this=0x563ccd90ca50, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/painting/qpaintengine_raster.cpp:380
#24 QRasterPaintEngine::~QRasterPaintEngine (this=0x563ccd90ca50, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/painting/qpaintengine_raster.cpp:380
#25 0x00007f154d72c5c0 in QImageData::~QImageData (this=0x563ccd951d10, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/image/qimage.cpp:164
#26 0x00007f154d72ca26 in QImage::~QImage (this=0x563cce269900, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/image/qimage.cpp:1067
#27 0x00007f154ff15dc4 in KDecoration3::DecorationShadow::Private::~Private (this=0x563cce269900, this=<optimized out>) at /usr/src/debug/kdecoration/kdecoration-6.5.5/src/decorationshadow.cpp:16
#28 std::default_delete<KDecoration3::DecorationShadow::Private>::operator() (this=<optimized out>, __ptr=0x563cce269900) at /usr/include/c++/15.2.1/bits/unique_ptr.h:92
#29 std::default_delete<KDecoration3::DecorationShadow::Private>::operator() (this=<optimized out>, __ptr=0x563cce269900) at /usr/include/c++/15.2.1/bits/unique_ptr.h:86
#30 std::unique_ptr<KDecoration3::DecorationShadow::Private, std::default_delete<KDecoration3::DecorationShadow::Private> >::~unique_ptr (this=0x563ccd768260, this=<optimized out>) at /usr/include/c++/15.2.1/bits/unique_ptr.h:398
#31 KDecoration3::DecorationShadow::~DecorationShadow (this=0x563ccd768250, this=<optimized out>) at /usr/src/debug/kdecoration/kdecoration-6.5.5/src/decorationshadow.cpp:24
#32 0x00007f154f99a7db in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x563ccd768240) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:345
#33 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x563ccd768240) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:316
#34 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=<optimized out>, this=<optimized out>) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:1069
#35 std::__shared_ptr<KDecoration3::DecorationShadow, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=<optimized out>, this=<optimized out>) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:1531
#36 std::__shared_ptr<KDecoration3::DecorationShadow, (__gnu_cxx::_Lock_policy)2>::operator= (this=0x563cce1e98d8, __r=...) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:1627
#37 std::shared_ptr<KDecoration3::DecorationShadow>::operator= (this=0x563cce1e98d8, __r=...) at /usr/include/c++/15.2.1/bits/shared_ptr.h:439
#38 KWin::Shadow::init (this=0x563cce1e97d0, decoration=0x563cce000c50) at /usr/src/debug/kwin/kwin-6.5.5/src/shadow.cpp:198
#39 0x00007f154f9ef40f in KWin::Window::updateShadow (this=0x563cce12fff0) at /usr/src/debug/kwin/kwin-6.5.5/src/window.cpp:260
#40 0x00007f154cfd734f in QtPrivate::QSlotObjectBase::call (this=0x563ccd999e20, r=0x563cce12fff0, a=0x7ffe53f850d0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#41 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4257
#42 0x00007f154ff074d3 in QMetaObject::activate<void, std::shared_ptr<KDecoration3::DecorationShadow> > (sender=<optimized out>, mo=0x7f154ff24be0 <KDecoration3::Decoration::staticMetaObject>, local_signal_index=6, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#43 KDecoration3::Decoration::shadowChanged (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kdecoration/build/src/kdecorations3_autogen/include/moc_decoration.cpp:388
#44 0x00007f1528cf2a0a in Breeze::Decoration::updateShadow (this=0x563cce000c50) at /usr/src/debug/breeze/breeze-6.5.5/kdecoration/breezedecoration.cpp:815
#45 0x00007f154cfd734f in QtPrivate::QSlotObjectBase::call (this=0x563ccdae5ee0, r=0x563cce000c50, a=0x7ffe53f852a0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#46 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4257
#47 0x00007f154d116fc6 in QMetaObject::activate<void, QVariant> (sender=0x563ccda01c10, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:319
#48 QVariantAnimation::valueChanged (this=0x563ccda01c10, _t1=...) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qvariantanimation.cpp:171
#49 QVariantAnimationPrivate::setCurrentValueForProgress (this=0x563ccdad9d90, progress=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qvariantanimation.cpp:265
#50 QVariantAnimationPrivate::recalculateCurrentInterval (this=0x563ccdad9d90, force=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qvariantanimation.cpp:240
#51 0x00007f154d1085aa in QAbstractAnimation::setCurrentTime (this=0x563ccda01c10, msecs=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qabstractanimation.cpp:1342
#52 0x00007f154d1088db in QAnimationTimer::updateAnimationsTime (this=0x563ccda13400, delta=16) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qabstractanimation.cpp:576
#53 0x00007f154d0ffda1 in QUnifiedTimer::updateAnimationTimers (this=this@entry=0x563ccd977350) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qabstractanimation.cpp:289
#54 0x00007f154d107b75 in QAnimationDriver::advanceAnimation (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qabstractanimation.cpp:756
#55 QAnimationDriver::advance (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qabstractanimation.cpp:769
#56 QDefaultAnimationDriver::timerEvent (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/animation/qabstractanimation.cpp:874
#57 0x00007f154cfc4936 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1388
#58 0x00007f154e1021c0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x563ccd977368, e=0x7ffe53f85580) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#59 0x00007f154cf6a958 in QCoreApplication::notifyInternal2 (receiver=0x563ccd977368, event=0x7ffe53f85580) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#60 0x00007f154d12c9af in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7ffe53f85580) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#61 QTimerInfoList::activateTimers (this=this@entry=0x563ccc04efa8) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:426
#62 0x00007f154d12e549 in QEventDispatcherUNIXPrivate::activateTimers (this=0x563ccc04eed0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:221
#63 QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:503
#64 0x00007f154dd34b73 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:28
#65 0x00007f154cf75786 in QEventLoop::processEvents (this=0x7ffe53f85760, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#66 QEventLoop::exec (this=0x7ffe53f85760, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#67 0x00007f154cf6f3f1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#68 0x00007f154e0fd32a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2575
#69 0x0000563cbc126a94 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.5.5/src/main_wayland.cpp:635

Something to do with decoration/shadows?