Bug 508876

Summary: kwin_wayland crashes when I disconnect from a dock with multiple monitors and a browser is open
Product: [Plasma] kwin Reporter: ineffectivelyincognito+kdebugs
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: kde
Priority: NOR    
Version First Reported In: 6.4.4   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description ineffectivelyincognito+kdebugs 2025-08-28 22:07:46 UTC
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, 
    no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ff04fe98a13 in __pthread_kill_internal (threadid=<optimized out>, signo=11)
    at pthread_kill.c:89
#2  0x00007ff04fe3e410 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007ff053976e97 in KCrash::defaultCrashHandler (sig=11)
    at /usr/src/debug/kcrash/kcrash-6.17.0/src/kcrash.cpp:605
#4  <signal handler called>
#5  0x00007ff0534fd763 in KWin::ColorManagementOutputV1::ColorManagementOutputV1 (
    this=0x5592d72a3ba0, client=<optimized out>, id=<optimized out>, version=<optimized out>, 
    output=0x0) at /usr/src/debug/kwin/kwin-6.4.4/src/wayland/colormanagement_v1.cpp:580
#6  KWin::ColorManagerV1::wp_color_manager_v1_get_output (this=<optimized out>, 
    resource=<optimized out>, id=<optimized out>, output=<optimized out>)
    at /usr/src/debug/kwin/kwin-6.4.4/src/wayland/colormanagement_v1.cpp:63
#7  0x00007ff04ea0aac6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#8  0x00007ff04ea0776b in ffi_call_int (cif=cif@entry=0x7ffef66fdd20, 
    fn=fn@entry=0x7ff053619540 <QtWaylandServer::wp_color_manager_v1::handle_get_output(wl_client*, wl_resource*, unsigned int, wl_resource*)>, rvalue=<optimized out>, rvalue@entry=0x0, 
    avalue=avalue@entry=0x7ffef66fddf0, closure=closure@entry=0x0) at ../src/x86/ffi64.c:676
#9  0x00007ff04ea0a06e in ffi_call (cif=cif@entry=0x7ffef66fdd20, 
    fn=0x7ff053619540 <QtWaylandServer::wp_color_manager_v1::handle_get_output(wl_client*, wl_resource*, unsigned int, wl_resource*)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffef66fddf0)
    at ../src/x86/ffi64.c:713
#10 0x00007ff050c40532 in wl_closure_invoke (closure=closure@entry=0x5592d74ca390, 
    target=<optimized out>, target@entry=0x5592d6e20f70, opcode=opcode@entry=1, 
    data=<optimized out>, data@entry=0x5592d6dbe070, flags=2)
    at ../wayland-1.24.0/src/connection.c:1241
#11 0x00007ff050c45d30 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, 
    data=<optimized out>) at ../wayland-1.24.0/src/wayland-server.c:483
#12 0x00007ff050c44182 in wl_event_loop_dispatch (loop=0x5592d554ea10, timeout=<optimized out>)
    at ../wayland-1.24.0/src/event-loop.c:1059
#13 0x00007ff05350a17a in KWin::Display::dispatchEvents (this=<optimized out>)
    at /usr/src/debug/kwin/kwin-6.4.4/src/wayland/display.cpp:138
#14 0x00007ff0507d37ef in QtPrivate::QSlotObjectBase::call (this=<optimized out>, 
    r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, 
    a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#15 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4146
#16 0x00007ff0507ddb40 in QMetaObject::activate<void, QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal> (sender=0x5592d658ee10, mo=<optimized out>, local_signal_index=0, 
    ret=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:306
#17 QSocketNotifier::activated (this=0x5592d658ee10, _t1=..., _t2=<optimized out>, _t3=...)
    at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:161
#18 QSocketNotifier::event (this=0x5592d658ee10, e=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qsocketnotifier.cpp:327
#19 0x00007ff051b01c70 in QApplicationPrivate::notify_helper (this=<optimized out>, 
    receiver=0x5592d658ee10, e=0x7ffef66fe610)
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3303
#20 0x00007ff050768118 in QCoreApplication::notifyInternal2 (receiver=0x5592d658ee10, 
    event=0x7ffef66fe610)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#21 0x00007ff050926629 in QCoreApplication::sendEvent (receiver=<optimized out>, 
    event=0x7ffef66fe610)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#22 QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x5592d54bd040)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:254
#23 0x00007ff0509273c7 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., 
    flags@entry=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:470
#24 0x00007ff05151ad33 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#25 0x00007ff0507744b6 in QEventLoop::processEvents (this=0x7ffef66fe7f0, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
--Type <RET> for more, q to quit, c to continue without paging--
#26 QEventLoop::exec (this=0x7ffef66fe7f0, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#27 0x00007ff05076c7c1 in QCoreApplication::exec ()
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1449
#28 0x00007ff051afc66a in QApplication::exec ()
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2570
#29 0x00005592c5776d26 in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kwin/kwin-6.4.4/src/main_wayland.cpp:635

SUMMARY

When I disconnect my laptop from a dock with two monitors attached and at least one browser is open (I'm often running firefox and/or chromium), kwin_wayland crashes and so do my browsers.

Nothing crashes if I disconnect without a browser open. Using the dock with a single monitor

STEPS TO REPRODUCE
1. Connect two monitors to my dock and connect the dock to my laptop.
2. Open a browser (steps 1 and 2 can occur in any order).
3. Disconnect the dock from the laptop.

OBSERVED RESULT

kwin_wayland crashes and so do my browsers

EXPECTED RESULT

Everything stays open and shifts to the laptop screen.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.1
Kernel Version: 6.16.3-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
Memory: 32 GiB of RAM (30.7 GiB usable)
Graphics Processor: AMD Radeon 780M Graphics

ADDITIONAL INFORMATION

Similar to several other issues (508620, 505759, 502951) but the stack traces and behaviors seem different enough that I don't think they're duplicates.

PS I don't know if there's a way to get details that are optimized out. I'm happy to produce a different backtrace or whatever if it would be helpful.
Comment 1 David Edmundson 2025-08-29 08:58:23 UTC

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