Bug 509004 - kwin_wayland crashes after unplugging USB-C cable to external monitors
Summary: kwin_wayland crashes after unplugging USB-C cable to external monitors
Status: RESOLVED DUPLICATE of bug 504959
Alias: None
Product: kwin
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 6.4.4
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2025-09-01 16:03 UTC by Stefan Becker
Modified: 2025-09-03 16:12 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Becker 2025-09-01 16:03:28 UTC
Application: kwin_wayland (6.4.4)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.1
Frameworks Version: 6.17.0
Operating System: Linux 6.15.9-201.fc42.x86_64 x86_64
Windowing System: Wayland
Distribution: Fedora Linux 42 (KDE Plasma Desktop Edition)
DrKonqi: 6.4.4 [CoredumpBackend]

-- Information about the crash:
Lenovo T14s Gen 2 laptop. I have two similar monitor setups at home & work. Both are 2x 2560x1440 monitors connected via USB-C -> left monitor -> MST/DP Out -> right monitor. The crash is reproducible in both setups.

Every time I unplug the USB-C cable to the external monitors, after a few seconds kwin_wayland crashes, taking most of the desktop applications with it (Firefox, Thunderbird, VSCode). The only windows that survive the crash are Konsole, Dolphin & LibreOffice (I'm using the kf6 integration for it).

The problem started after I upgraded to Plasma 6.4.4.

I have already verified that it is not related to the kernel 6.15.x -> 6.16.x upgrade in Fedora. The crash also happens under 6.15.x, where Plasma & external monitor setup was working fine before the upgrade to 6.4.4.

I have another laptop at home that is connected via HDMI & AVR to a TV. I have not observed the crash in that setup.

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin_wayland), signal: Segmentation fault


This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.fedoraproject.org/>
Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.

warning: Can't open file /memfd:gdk-wayland (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:kwayland-shared (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:wayland-cursor (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:wayland-shm (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JITCode:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file /memfd:unknown-usage:QtQml (deleted) during file-backed mapping note processing
[New LWP 138727]
[New LWP 138754]
[New LWP 138743]
[New LWP 138755]
[New LWP 138753]
[New LWP 138752]
[New LWP 138771]
[New LWP 140960]
[New LWP 138765]
[New LWP 138766]
[New LWP 138768]
[New LWP 138767]
[New LWP 140959]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayland-fd 9 --xwayland-display :0 --xwayland-xauthority /run/user/1090/xauth_zzxgmV --xwayland'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f3c6b481e9c in __pthread_kill_implementation () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f3c656c1dc0 (LWP 138727))]
Cannot QML trace cores :(
[Current thread is 1 (Thread 0x7f3c656c1dc0 (LWP 138727))]

Thread 13 (Thread 0x7f3be8f786c0 (LWP 140959)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 12 (Thread 0x7f3c367fc6c0 (LWP 138767)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 11 (Thread 0x7f3c35ffb6c0 (LWP 138768)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 10 (Thread 0x7f3c36ffd6c0 (LWP 138766)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 9 (Thread 0x7f3c377fe6c0 (LWP 138765)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 8 (Thread 0x7f3bd67896c0 (LWP 140960)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 7 (Thread 0x7f3c357fa6c0 (LWP 138771)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47c7a4 in __syscall_cancel () from /lib64/libc.so.6
#3  0x00007f3c6b4f67c6 in ppoll () from /lib64/libc.so.6
#4  0x00007f3c6a713890 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0
#5  0x00007f3c6a713953 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#6  0x00007f3c6be0f9ad in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#7  0x00007f3c6bb07b03 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#8  0x00007f3c6bc2808d in QThread::exec() () from /lib64/libQt6Core.so.6
#9  0x00007f3c6bcc5b9f in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#10 0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#11 0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 6 (Thread 0x7f3c562b16c0 (LWP 138752)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 5 (Thread 0x7f3c55ab06c0 (LWP 138753)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f49e in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libc.so.6
#4  0x00007f3c4d54e91d in cnd_wait () from /lib64/libgallium-25.1.7.so
#5  0x00007f3c4d507ffc in util_queue_thread_func () from /lib64/libgallium-25.1.7.so
#6  0x00007f3c4d54e84c in impl_thrd_routine () from /lib64/libgallium-25.1.7.so
#7  0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#8  0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 4 (Thread 0x7f3c37fff6c0 (LWP 138755)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47c7a4 in __syscall_cancel () from /lib64/libc.so.6
#3  0x00007f3c6b4f67c6 in ppoll () from /lib64/libc.so.6
#4  0x00007f3c6a713890 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0
#5  0x00007f3c6a713953 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#6  0x00007f3c6be0f9ad in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#7  0x00007f3c6bb07b03 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#8  0x00007f3c6bc2808d in QThread::exec() () from /lib64/libQt6Core.so.6
#9  0x00007f3c6bcc5b9f in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#10 0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#11 0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 3 (Thread 0x7f3c577ff6c0 (LWP 138743)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47c7a4 in __syscall_cancel () from /lib64/libc.so.6
#3  0x00007f3c6b4f67c6 in ppoll () from /lib64/libc.so.6
#4  0x00007f3c6a713890 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0
#5  0x00007f3c6a713953 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#6  0x00007f3c6be0f9ad in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#7  0x00007f3c6bb07b03 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#8  0x00007f3c6bc2808d in QThread::exec() () from /lib64/libQt6Core.so.6
#9  0x00007f3c6cc5d821 in QDBusConnectionManager::run() () from /lib64/libQt6DBus.so.6
#10 0x00007f3c6bcc5b9f in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#11 0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#12 0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 2 (Thread 0x7f3c54aab6c0 (LWP 138754)):
#0  0x00007f3c6b488462 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f3c6b47c75c in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f3c6b47cdcc in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f3c6b47f8d2 in pthread_cond_clockwait@GLIBC_2.30 () from /lib64/libc.so.6
#4  0x00007f3c6eb4c618 in KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}::operator()() const () from /lib64/libkwin.so.6
#5  0x00007f3c6eb4d34a in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}>(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}&&)::{lambda((auto:1&&)...)#1}> >, void> >::_M_invoke(std::_Any_data const&) () from /lib64/libkwin.so.6
#6  0x00007f3c6eb45d46 in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) () from /lib64/libkwin.so.6
#7  0x00007f3c6b4852d4 in __pthread_once_slow.isra.0 () from /lib64/libc.so.6
#8  0x00007f3c6b485349 in pthread_once@GLIBC_2.2.5 () from /lib64/libc.so.6
#9  0x00007f3c6eb45fc3 in std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}>(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}&&)::{lambda((auto:1&&)...)#1}> >, void>::_M_complete_async() [clone .lto_priv.0] () from /lib64/libkwin.so.6
#10 0x00007f3c6bc28667 in QThreadCreateThread::run() () from /lib64/libQt6Core.so.6
#11 0x00007f3c6bcc5b9f in QThreadPrivate::start(void*) () from /lib64/libQt6Core.so.6
#12 0x00007f3c6b47ff54 in start_thread () from /lib64/libc.so.6
#13 0x00007f3c6b50332c in __clone3 () from /lib64/libc.so.6

Thread 1 (Thread 0x7f3c656c1dc0 (LWP 138727)):
[KCrash Handler]
#4  0x00007f3c6ebd6f89 in KWin::ColorManagerV1::wp_color_manager_v1_get_output(QtWaylandServer::wp_color_manager_v1::Resource*, unsigned int, wl_resource*) () from /lib64/libkwin.so.6
#5  0x00007f3c6a391056 in ffi_call_unix64 () from /lib64/libffi.so.8
#6  0x00007f3c6a38cd08 in ffi_call_int.lto_priv () from /lib64/libffi.so.8
#7  0x00007f3c6a38f70e in ffi_call () from /lib64/libffi.so.8
#8  0x00007f3c6b8f5440 in wl_closure_invoke.constprop () from /lib64/libwayland-server.so.0
#9  0x00007f3c6b8faaa0 in wl_client_connection_data () from /lib64/libwayland-server.so.0
#10 0x00007f3c6b8f8f42 in wl_event_loop_dispatch () from /lib64/libwayland-server.so.0
#11 0x00007f3c6ebe3669 in KWin::Display::dispatchEvents() () from /lib64/libkwin.so.6
#12 0x00007f3c6bb657ba in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt6Core.so.6
#13 0x00007f3c6bb74593 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () from /lib64/libQt6Core.so.6
#14 0x00007f3c6bb74d6b in QSocketNotifier::event(QEvent*) () from /lib64/libQt6Core.so.6
#15 0x00007f3c6ce3d97f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6
#16 0x00007f3c6baf9f38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6
#17 0x00007f3c6bcc8447 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () from /lib64/libQt6Core.so.6
#18 0x00007f3c6bcc8d79 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#19 0x00007f3c6c8e0442 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Gui.so.6
#20 0x00007f3c6bb07b03 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#21 0x00007f3c6bb03419 in QCoreApplication::exec() () from /lib64/libQt6Core.so.6
#22 0x00005582817e96db in main ()

Reported using DrKonqi
Comment 1 Stefan Becker 2025-09-01 16:42:32 UTC
I've now narrowed it down to Firefox. If I have no Firefox running on the desktop while unplugging the USB-C cable, then everything works fine. For the time being I can live with shutting down my Firefox instances before disconnecting the laptop, but it is of course not ideal.

One other thing I tested: the laptop display supports HDR, which I have enabled. None of the external monitors supports HDR, so I have a mixed HDR/non-HDR desktop when connected to the external monitors. Disabling HDR didn't prevent the crash. [Just a crazy idea I got when looking at the crash log: "KWin::ColorManagerV1::wp_color_manager_v1_get_output(...)"]
Comment 2 Stefan Becker 2025-09-01 16:53:16 UTC
This commit in Plasma/6.4 branch sounds related: https://invent.kde.org/plasma/kwin/-/commit/5baacbef52eca9948d6e910dff0888996a571722

Fedora guys are trying to backport it to 6.4.4 for me. Let's see....

I've now tested also with Chromium: it doesn't cause the desktop to crash.
Comment 3 Stefan Becker 2025-09-01 20:02:26 UTC
Yep, that added nullptr check fixed the issue for me.

Tested with packages from this koji build: https://koji.fedoraproject.org/koji/buildinfo?buildID=2809387

I'll close this once I can test with Plasma 6.4.5, which will include this fix.
Comment 4 TraceyC 2025-09-03 16:12:19 UTC
Thank you for the bug report. Based on the backtrace this looks like a duplicate of bug 504959. This was fixed in Plamsa version 6.4.5. The fix will reach your system when it updates to that version.

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