Bug 502951 - kwin_wayland crashes in KWin::DrmOutput::cursorLayer() after disconnect dell dock
Summary: kwin_wayland crashes in KWin::DrmOutput::cursorLayer() after disconnect dell ...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 6.3.4
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 503356 503511 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-04-17 22:47 UTC by kevinleroy
Modified: 2025-05-05 12:38 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.3.5
Sentry Crash Report:


Attachments
New crash information added by DrKonqi (124.82 KB, text/plain)
2025-04-17 22:47 UTC, kevinleroy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description kevinleroy 2025-04-17 22:47:13 UTC
Application: kwin_wayland (6.3.4)

ApplicationNotResponding [ANR]: false
Qt Version: 6.8.2
Frameworks Version: 6.13.0
Operating System: Linux 6.14.2-300.fc42.x86_64 x86_64
Windowing System: Wayland
Distribution: "Fedora Linux 42 (KDE Plasma Desktop Edition)"
DrKonqi: 6.3.4 [CoredumpBackend]

-- Information about the crash:
kwin_wayland and xwayland crash after disconnect del dock
Crash report is regullary not auto-generated in some crashs.

The crash can be reproduced sometimes.

-- Backtrace (Reduced):
#5  0x00007f5c8b954dab in KWin::DrmOutput::cursorLayer (this=0x55937cd2e040) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_output.cpp:555
#6  0x00007f5c8b65f78c in operator() (__closure=0x55937d5ba830) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/compositor_wayland.cpp:505
#7  0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937d5ba820, r=0x55937d6d44d0, a=0x7ffdeb5b7c70) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#8  doActivate<false> (sender=0x55937b899a80, signal_index=3, argv=argv@entry=0x7ffdeb5b7c70) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
[...]
#10 0x00007f5c8b68bcd1 in KWin::Cursors::currentCursorChanged (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/redhat-linux-build/src/kwin_autogen/include/moc_cursor.cpp:395


Reported using DrKonqi
Comment 1 kevinleroy 2025-04-17 22:47:24 UTC
Created attachment 180370 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nate Graham 2025-04-18 17:37:03 UTC
Searchable backtrace:


Thread 1 (Thread 0x7f5c81d02400 (LWP 3556)):
[KCrash Handler]
#5  0x00007f5c8b954dab in KWin::DrmOutput::cursorLayer (this=0x55937cd2e040) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_output.cpp:555
#6  0x00007f5c8b65f78c in operator() (__closure=0x55937d5ba830) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/compositor_wayland.cpp:505
#7  0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937d5ba820, r=0x55937d6d44d0, a=0x7ffdeb5b7c70) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#8  doActivate<false> (sender=0x55937b899a80, signal_index=3, argv=argv@entry=0x7ffdeb5b7c70) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#9  0x00007f5c889558a9 in QMetaObject::activate (sender=<optimized out>, m=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdeb5b7c70) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4175
#10 0x00007f5c8b68bcd1 in KWin::Cursors::currentCursorChanged (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/redhat-linux-build/src/kwin_autogen/include/moc_cursor.cpp:395
#11 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937b89a0e0, r=0x55937b899a80, a=0x7ffdeb5b7d18) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#12 doActivate<false> (sender=0x55937b89a5e0, signal_index=5, argv=0x7ffdeb5b7d18) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#13 0x00007f5c8b7c35ea in operator() (__closure=0x55937c9e9aa0) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/pointer_input.cpp:111
#14 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:141
#15 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call(KWin::PointerInputRedirection::init()::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#16 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:140
#17 QtPrivate::FunctorCallable<KWin::PointerInputRedirection::init()::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:362
#18 QtPrivate::QCallableObject<KWin::PointerInputRedirection::init()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55937c9e9a90, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:572
#19 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937c9e9a90, r=0x55937b89a5e0, a=0x7ffdeb5b7e08) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#20 doActivate<false> (sender=0x55937c887880, signal_index=3, argv=0x7ffdeb5b7e08) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#21 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937b6d0700, r=0x55937c887880, a=0x7ffdeb5b7ed8) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#22 doActivate<false> (sender=0x55937b7cd320, signal_index=4, argv=0x7ffdeb5b7ed8) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#23 0x00007f5c8ba22b79 in KWin::SeatInterface::notifyPointerLeave (this=0x55937b7d2a70) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/wayland/seat.cpp:592
#24 0x00007f5c8b729ab8 in KWin::InputDeviceHandler::update (this=0x55937b95e2c0) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/input.cpp:3669
#25 KWin::InputDeviceHandler::update (this=0x55937b95e2c0) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/input.cpp:3650
#26 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937e1ed5f0, r=0x55937b95e2c0, a=0x7ffdeb5b8088) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#27 doActivate<false> (sender=0x55937e3d4850, signal_index=8, argv=0x7ffdeb5b8088) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#28 0x00007f5c8b75d508 in KWin::LayerShellV1Window::destroyWindow (this=0x55937e3d4850) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/layershellv1window.cpp:210
#29 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937dd76ae0, r=0x55937e3d4850, a=0x7ffdeb5b8178) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#30 doActivate<false> (sender=0x55937d94ba00, signal_index=4, argv=0x7ffdeb5b8178, argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#31 0x00007f5c889558a9 in QMetaObject::activate (sender=sender@entry=0x55937d94ba00, m=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4175
#32 0x00007f5c8b670ae7 in KWin::Output::enabledChanged (this=this@entry=0x55937d94ba00) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/redhat-linux-build/src/kwin_autogen/include/moc_output.cpp:645
#33 0x00007f5c8b677b6d in KWin::Output::setState (this=0x55937d94ba00, state=...) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/core/output.cpp:651
#34 0x00007f5c8b92a13b in KWin::DrmAbstractOutput::updateEnabled (this=this@entry=0x55937d94ba00, enabled=false) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_abstract_output.cpp:32
#35 0x00007f5c8b92a1bf in KWin::DrmBackend::removeOutput (this=0x55937b7d2390, o=0x55937d94ba00) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_backend.cpp:277
#36 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937b86da40, r=0x55937b7d2390, a=0x7ffdeb5b8c50) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#37 doActivate<false> (sender=0x55937b7276f0, signal_index=5, argv=argv@entry=0x7ffdeb5b8c50) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#38 0x00007f5c889558a9 in QMetaObject::activate (sender=sender@entry=0x55937b7276f0, m=<optimized out>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffdeb5b8c50) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4175
#39 0x00007f5c8b94e278 in KWin::DrmGpu::outputRemoved (this=0x55937b7276f0, _t1=0x55937d94ba00) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/redhat-linux-build/src/kwin_autogen/include/moc_drm_gpu.cpp:296
#40 KWin::DrmGpu::removeOutput (this=0x55937b7276f0, output=0x55937d94ba00) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_gpu.cpp:562
#41 0x00007f5c8b92ced7 in KWin::DrmGpu::updateOutputs (this=<optimized out>) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_gpu.cpp:307
#42 KWin::DrmGpu::updateOutputs (this=<optimized out>) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_gpu.cpp:243
#43 KWin::DrmBackend::updateOutputs (this=this@entry=0x55937b7d2390) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_backend.cpp:288
#44 0x00007f5c8b92ee95 in KWin::DrmBackend::handleUdevEvent (this=0x55937b7d2390) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/backends/drm/drm_backend.cpp:202
#45 0x00007f5c8895eefa in QtPrivate::QSlotObjectBase::call (this=0x55937b7e9590, r=0x55937b7d2390, a=0x7ffdeb5b9020) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#46 doActivate<false> (sender=0x55937b991f10, signal_index=3, argv=argv@entry=0x7ffdeb5b9020) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
#47 0x00007f5c889558a9 in QMetaObject::activate (sender=sender@entry=0x55937b991f10, m=m@entry=0x7f5c88e82ee0, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdeb5b9020) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4175
#48 0x00007f5c8896da9d in QSocketNotifier::activated (this=this@entry=0x55937b991f10, _t1=..., _t2=<optimized out>, _t3=...) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:198
#49 0x00007f5c8896e293 in QSocketNotifier::event (this=0x55937b991f10, e=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qsocketnotifier.cpp:327
#50 0x00007f5c89c3d4ca in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55937b991f10, e=0x7ffdeb5b9180) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3296
#51 0x00007f5c888f549c in QCoreApplication::notifyInternal2 (receiver=0x55937b991f10, event=0x7ffdeb5b9180) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1172
#52 0x00007f5c888f56ed in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1612
#53 0x00007f5c88abda87 in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x55937b705e50) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:254
#54 0x00007f5c88abe3b9 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:470
#55 0x00007f5c896c7ab2 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#56 0x00007f5c889026d3 in QEventLoop::exec (this=this@entry=0x7ffdeb5b9350, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/global/qflags.h:34
#57 0x00007f5c888fe1d5 in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1515
#58 0x00007f5c890d893d in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/gui/kernel/qguiapplication.cpp:1975
#59 0x00007f5c89c3d439 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/widgets/kernel/qapplication.cpp:2564
#60 0x0000559356633ffb in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-6.3.4-2.fc42.x86_64/src/main_wayland.cpp:622
Comment 3 thederpyworld 2025-04-19 13:49:17 UTC
I have a feeling I am encountering the same issue, although not with a DELL dock, but 3x DELL U2415 monitors daisy-chained together using MST. Usually happens after the DPMS turns off.

-- KINFO OUTPUT

Operating System: Arch Linux 
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.12.0
Qt Version: 6.9.0
Kernel Version: 6.14.2-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 6800HS with Radeon Graphics
Memory: 14.9 GiB of RAM
Graphics Processor 1: AMD Radeon 680M
Graphics Processor 2: llvmpipe

-- BACKTRACE FROM COREDUMPCTL

[Current thread is 1 (Thread 0x7e527d46fa40 (LWP 1717))]
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007e52836a56d3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
#2  0x00007e528364bba0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007e52867f74da in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.12.0/src/kcrash.cpp:605
#4  0x00007e528364bcd0 in <signal handler called> () at /usr/lib/libc.so.6
#5  0x00007e5286c3696b in KWin::DrmOutput::cursorLayer (this=0x6092722adab0) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_output.cpp:555
#6  0x00007e52869758ca in operator() (__closure=0x609271f1ed40) at /usr/src/debug/kwin/kwin-6.3.4/src/compositor_wayland.cpp:505
#7  0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x609271f1ed30, r=0x6092734d5170, a=0x7ffd9ada5e20, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#8  doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#9  0x00007e52869a6712 in QMetaObject::activate<void, KWin::Cursor*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:306
#10 KWin::Cursors::currentCursorChanged (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_cursor.cpp:300
#11 0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x609272835b60, r=0x609270236810, a=0x7ffd9ada5ec8, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#12 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#13 0x00007e5286ac042c in operator() (__closure=0x609270fa9d80) at /usr/src/debug/kwin/kwin-6.3.4/src/pointer_input.cpp:111
#14 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#15 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call(KWin::PointerInputRedirection::init()::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#16 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#17 QtPrivate::FunctorCallable<KWin::PointerInputRedirection::init()::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#18 QtPrivate::QCallableObject<KWin::PointerInputRedirection::init()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=<optimized out>, this_=0x609270fa9d70, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#19 0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x609270fa9d70, r=0x609270385380, a=0x7ffd9ada5fb8, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#20 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#21 0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x60927121dc60, r=0x6092712d0620, a=0x7ffd9ada6088, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#22 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#23 0x00007e5286cf8990 in KWin::SeatInterface::notifyPointerLeave (this=0x60926ff29ff0) at /usr/src/debug/kwin/kwin-6.3.4/src/wayland/seat.cpp:592
#24 0x00007e5286a30d42 in KWin::InputDeviceHandler::update (this=0x6092700f2db0) at /usr/src/debug/kwin/kwin-6.3.4/src/input.cpp:3669
#25 KWin::InputDeviceHandler::update (this=0x6092700f2db0) at /usr/src/debug/kwin/kwin-6.3.4/src/input.cpp:3650
#26 0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x609272493350, r=0x6092700f2db0, a=0x7ffd9ada6228, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#27 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#28 0x00007e5286a61bd5 in KWin::LayerShellV1Window::destroyWindow (this=0x609273eb2e20) at /usr/src/debug/kwin/kwin-6.3.4/src/layershellv1window.cpp:210
#29 0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x609272576700, r=0x609273eb2e20, a=0x7ffd9ada6328, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#30 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#31 0x00007e528698c938 in KWin::Output::setState (this=0x609272034f30, state=...) at /usr/src/debug/kwin/kwin-6.3.4/src/core/output.cpp:651
#32 0x00007e5286dcd513 in KWin::DrmAbstractOutput::updateEnabled(bool) [clone .constprop.0] (this=this@entry=0x609272034f30, enabled=false) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_abstract_output.cpp:32
#33 0x00007e5286c0d6a2 in KWin::DrmBackend::removeOutput (this=0x7e527800fde0, o=0x609272034f30) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_backend.cpp:277
#34 0x00007e5283db6cc9 in QtPrivate::QSlotObjectBase::call (this=0x609270105440, r=0x7e527800fde0, a=0x7ffd9ada6e10, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#35 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#36 0x00007e5286c3034c in QMetaObject::activate<void, KWin::DrmAbstractOutput*> (sender=0x6092700eef30, mo=<optimized out>, local_signal_index=2, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:306
#37 KWin::DrmGpu::outputRemoved (this=0x6092700eef30, _t1=0x609272034f30) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_drm_gpu.cpp:234
#38 KWin::DrmGpu::removeOutput (this=0x6092700eef30, output=0x609272034f30) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_gpu.cpp:562
#39 0x00007e5286c10786 in KWin::DrmGpu::updateOutputs (this=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_gpu.cpp:307
#40 KWin::DrmGpu::updateOutputs (this=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_gpu.cpp:243
#41 KWin::DrmBackend::updateOutputs (this=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/backends/drm/drm_backend.cpp:288
#42 0x00007e5283da54aa in QObject::event (this=0x7e527800fde0, e=0x7e52281380a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1431
#43 0x00007e52850fed9e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7e527800fde0, e=0x7e52281380a0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3301
#44 0x00007e5283d5a018 in QCoreApplication::notifyInternal2 (receiver=0x7e527800fde0, event=event@entry=0x7e52281380a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#45 0x00007e5283d5a3f2 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7e52281380a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#46 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x60926fde1dd0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879
#47 0x00007e5283ee29b3 in QEventDispatcherUNIX::processEvents (this=0x60926fe02600, flags=flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:418
#48 0x00007e5284a72943 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#49 0x00007e5283d65376 in QEventLoop::processEvents (this=0x7ffd9ada7390, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#50 QEventLoop::exec (this=0x7ffd9ada7390, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#51 0x00007e5283d5d159 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:77
#52 0x00007e52850fb14a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2568
#53 0x000060924de350a1 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/main_wayland.cpp:622
Comment 4 Zamundaaa 2025-04-20 21:31:54 UTC
This has been fixed with https://invent.kde.org/plasma/kwin/-/merge_requests/7479
Comment 5 thederpyworld 2025-04-24 11:43:14 UTC
Unfortunately, I have still encountered this crash on the `4b2f98c46077c4fe8ef257130427aa064165cab8` commit, which contains the changes contained in https://invent.kde.org/plasma/kwin/-/merge_requests/7479 .

-- COREDUMPCTL GDB BACKTRACE

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007a95aaaa56d3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
#2  0x00007a95aaa4bba0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007a95ae3b54da in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.12.0/src/kcrash.cpp:605
#4  0x00007a95aaa4bcd0 in <signal handler called> () at /usr/lib/libc.so.6
#5  0x00007a95ade70a6b in KWin::DrmOutput::cursorLayer (this=0x5f12b5e68d10) at /usr/src/debug/kwin/kwin/src/backends/drm/drm_output.cpp:566
#6  0x00007a95adba77ca in operator() (__closure=0x5f12b514e340) at /usr/src/debug/kwin/kwin/src/compositor_wayland.cpp:505
#7  0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b514e330, r=0x5f12b3a56fc0, a=0x7ffc8ca9c8f0, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#8  doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#9  0x00007a95adbd18f2 in QMetaObject::activate<void, KWin::Cursor*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:306
#10 KWin::Cursors::currentCursorChanged (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_cursor.cpp:300
#11 0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b24762e0, r=0x5f12b2473bb0, a=0x7ffc8ca9c998, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#12 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#13 0x00007a95adcf92ec in operator() (__closure=0x5f12b335cc60) at /usr/src/debug/kwin/kwin/src/pointer_input.cpp:111
#14 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#15 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call(KWin::PointerInputRedirection::init()::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#16 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call (f=..., arg=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#17 QtPrivate::FunctorCallable<KWin::PointerInputRedirection::init()::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#18 QtPrivate::QCallableObject<KWin::PointerInputRedirection::init()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=<optimized out>, this_=0x5f12b335cc50, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#19 0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b335cc50, r=0x5f12b24b4170, a=0x7ffc8ca9ca88, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#20 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#21 0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b3431020, r=0x5f12b340caf0, a=0x7ffc8ca9cb58, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#22 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#23 0x00007a95adf32430 in KWin::SeatInterface::notifyPointerLeave (this=0x5f12b208ba60) at /usr/src/debug/kwin/kwin/src/wayland/seat.cpp:592
#24 0x00007a95adc63992 in KWin::InputDeviceHandler::update (this=0x5f12b22a8c60) at /usr/src/debug/kwin/kwin/src/input.cpp:3671
#25 KWin::InputDeviceHandler::update (this=0x5f12b22a8c60) at /usr/src/debug/kwin/kwin/src/input.cpp:3652
#26 0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b3408380, r=0x5f12b22a8c60, a=0x7ffc8ca9ccf8, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#27 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#28 0x00007a95adc985b7 in KWin::LayerShellV1Window::destroyWindow (this=0x5f12b5fe7500) at /usr/src/debug/kwin/kwin/src/layershellv1window.cpp:212
#29 0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b4af4550, r=0x5f12b5fe7500, a=0x7ffc8ca9ce90, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#30 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#31 0x00007a95adde4ac5 in QMetaObject::activate<void, KWin::Output*>
    (sender=<optimized out>, mo=<optimized out>, local_signal_index=16, ret=0x0, sender=<optimized out>, mo=<optimized out>, local_signal_index=<optimized out>, ret=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs.h:306
#32 KWin::Workspace::outputRemoved (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_workspace.cpp:662
#33 0x00007a95adddd47b in KWin::Workspace::updateOutputs (this=<optimized out>, outputOrder=<optimized out>) at /usr/src/debug/kwin/kwin/src/workspace.cpp:1325
#34 0x00007a95addd245c in KWin::Workspace::applyOutputConfiguration (this=0x5f12b2f68f00, config=..., outputOrder=std::optional = {...}) at /usr/src/debug/kwin/kwin/src/workspace.cpp:511
#35 KWin::Workspace::applyOutputConfiguration (this=this@entry=0x5f12b2f68f00, config=..., outputOrder=std::optional = {...}) at /usr/src/debug/kwin/kwin/src/workspace.cpp:506
#36 0x00007a95addd48eb in KWin::Workspace::updateOutputConfiguration (this=this@entry=0x5f12b2f68f00) at /usr/src/debug/kwin/kwin/src/workspace.cpp:581
#37 0x00007a95addd51e3 in KWin::Workspace::slotOutputBackendOutputsQueried (this=0x5f12b2f68f00) at /usr/src/debug/kwin/kwin/src/workspace.cpp:1246
#38 0x00007a95ab1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5f12b319a510, r=0x5f12b2f68f00, a=0x7ffc8ca9d7a8, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#39 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#40 0x00007a95ade4f702 in KWin::DrmBackend::updateOutputs (this=<optimized out>) at /usr/src/debug/kwin/kwin/src/backends/drm/drm_backend.cpp:292
#41 0x00007a95ab1a54aa in QObject::event (this=0x7a959c00f5e0, e=0x5f12b4a03520) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1431
#42 0x00007a95ac2fed9e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7a959c00f5e0, e=0x5f12b4a03520) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3301
#43 0x00007a95ab15a018 in QCoreApplication::notifyInternal2 (receiver=0x7a959c00f5e0, event=event@entry=0x5f12b4a03520) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#44 0x00007a95ab15a3f2 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x5f12b4a03520) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#45 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5f12b1f94dd0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879
#46 0x00007a95ab2e29b3 in QEventDispatcherUNIX::processEvents (this=0x5f12b1fb5520, flags=flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:418
#47 0x00007a95abe72943 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#48 0x00007a95ab165376 in QEventLoop::processEvents (this=0x7ffc8ca9e290, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#49 QEventLoop::exec (this=0x7ffc8ca9e290, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#50 0x00007a95ab15d159 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:77
#51 0x00007a95ac2fb14a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2568
#52 0x00005f1285efef07 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin/src/main_wayland.cpp:622
(gdb)
Comment 6 Nate Graham 2025-04-28 15:40:06 UTC
*** Bug 503356 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2025-04-29 14:08:31 UTC
*** Bug 503511 has been marked as a duplicate of this bug. ***
Comment 8 Bug Janitor Service 2025-05-02 17:45:21 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7584
Comment 9 Zamundaaa 2025-05-05 11:48:18 UTC
Git commit 3abeb183f82e567259f965f20c86776446382e7c by Xaver Hugl.
Committed on 05/05/2025 at 11:28.
Pushed by zamundaaa into branch 'master'.

backends/drm: guard updateCursorLayer for a nullptr pipeline

This isn't a proper fix, but much simpler to backport than changing backends
and workspace a lot

M  +5    -0    src/backends/drm/drm_output.cpp

https://invent.kde.org/plasma/kwin/-/commit/3abeb183f82e567259f965f20c86776446382e7c
Comment 10 Zamundaaa 2025-05-05 12:38:19 UTC
Git commit e05da3f136a2dda8df707b12f745f274d6547795 by Xaver Hugl.
Committed on 05/05/2025 at 12:03.
Pushed by zamundaaa into branch 'Plasma/6.3'.

backends/drm: guard updateCursorLayer for a nullptr pipeline

This isn't a proper fix, but much simpler to backport than changing backends
and workspace a lot


(cherry picked from commit 3abeb183f82e567259f965f20c86776446382e7c)

Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>

M  +5    -0    src/backends/drm/drm_output.cpp

https://invent.kde.org/plasma/kwin/-/commit/e05da3f136a2dda8df707b12f745f274d6547795