Bug 507710

Summary: KWin color management segfault in KWin::ColorManagementOutputV1::ColorManagementOutputV1 when disconnecting a screen while Firefox is open
Product: [Plasma] kwin Reporter: djqballer
Component: generic-crashAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: ctj9512, kdedev
Priority: NOR Keywords: drkonqi
Version First Reported In: 6.4.3   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/222301/events/02862955882148b5b53eca630d52afcf/

Description djqballer 2025-07-31 19:16:48 UTC
Application: kwin_wayland (6.4.3)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.1
Frameworks Version: 6.16.0
Operating System: Linux 6.14.0-27-generic x86_64
Windowing System: Wayland
Distribution: KDE neon User Edition
DrKonqi: 6.4.3 [CoredumpBackend]

-- Information about the crash:
Since upgrading to KDE Neon 6.4.3, most of the time I disconnect a screen, KWin crashes. It's been this same error every time - this segfault in the color management code.

I've been able to frequently reproduce this on an Intel Framework laptop as well as a ThinkPad with an Nvidia GPU, both running the same version of KDE Neon. So far I've only tested going through a ThinkPad Thunderbolt dock, connecting 1440p DisplayPort monitors, but after I finish typing up this report I'll try some HDMI configrations with and without the dock as well.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KWin (kwin_wayland), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}

warning: Can't open file /memfd:/.glXXXXXX (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:wayland-cursor (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:gdk-wayland (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:JSVMStack:QtQml (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 /memfd:unknown-usage:QtQml (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:xwayland-shared (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) during file-backed mapping note processing
[New LWP 2840]
[New LWP 2918]
[New LWP 2902]
[New LWP 2897]
[New LWP 2903]
Downloading separate debug info for /lib/x86_64-linux-gnu/libsystemd.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-randr.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-composite.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-xfixes.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libcanberra.so.0...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libcanberra.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libcanberra.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libcap.so.2...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libcap.so.2
Downloading separate debug info for /lib/x86_64-linux-gnu/libcap.so.2...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgcrypt.so.20...
Downloading separate debug info for /lib/x86_64-linux-gnu/liblzma.so.5...
Downloading separate debug info for /lib/x86_64-linux-gnu/libvorbisfile.so.3...
Downloading separate debug info for /lib/x86_64-linux-gnu/libtdb.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libdrm.so.2...
Downloading separate debug info for /lib/x86_64-linux-gnu/libudev.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-render.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-res.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-shape.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-shm.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-sync.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgbm.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-dri3.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-present.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-xinput.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libglib-2.0.so.0...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libglib-2.0.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libglib-2.0.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libpng16.so.16...
Downloading separate debug info for /lib/x86_64-linux-gnu/libharfbuzz.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libfreetype.so.6...
Downloading separate debug info for /lib/x86_64-linux-gnu/libpcre2-16.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgpg-error.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libbsd.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libcrypto.so.3...
Downloading separate debug info for /lib/x86_64-linux-gnu/libvorbis.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgallium-24.2.8-1ubuntu1~24.04.1.so...
Downloading separate debug info for /lib/x86_64-linux-gnu/libexpat.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libmtdev.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libevdev.so.2...
Downloading separate debug info for /lib/x86_64-linux-gnu/libwacom.so.9...
Downloading separate debug info for /lib/x86_64-linux-gnu/libXi.so.6...
Downloading separate debug info for /lib/x86_64-linux-gnu/libproxy.so.1...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libproxy.so.1
Downloading separate debug info for /lib/x86_64-linux-gnu/libproxy.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libmount.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libpcre2-8.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgraphite2.so.3...
Downloading separate debug info for /lib/x86_64-linux-gnu/libmd.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libglapi.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libLLVM.so.19.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libsensors.so.5...
Downloading separate debug info for /lib/x86_64-linux-gnu/libdrm_radeon.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libelf.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libdrm_amdgpu.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libdrm_intel.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-dri2.so.0...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgobject-2.0.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libgobject-2.0.so.0...
Downloading separate debug info for /usr/lib/x86_64-linux-gnu/libproxy/libpxbackend-1.0.so...
Downloading separate debug info for /lib/x86_64-linux-gnu/libplist-2.0.so.4...
Downloading separate debug info for /lib/x86_64-linux-gnu/libblkid.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libselinux.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libedit.so.2...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxml2.so.2...
Downloading separate debug info for /lib/x86_64-linux-gnu/libpciaccess.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libcurl-gnutls.so.4...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgio-2.0.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libgio-2.0.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libssl.so.3...
Downloading separate debug info for /lib/x86_64-linux-gnu/libtinfo.so.6...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libtinfo.so.6
Downloading separate debug info for /lib/x86_64-linux-gnu/libtinfo.so.6...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnghttp2.so.14...
Downloading separate debug info for /lib/x86_64-linux-gnu/libidn2.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libssh.so.4...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgnutls.so.30...
Downloading separate debug info for /lib/x86_64-linux-gnu/libldap.so.2...
Downloading separate debug info for /lib/x86_64-linux-gnu/liblber.so.2...

warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libunistring.so.5...
Downloading separate debug info for /lib/x86_64-linux-gnu/libgmp.so.10...
Downloading separate debug info for /lib/x86_64-linux-gnu/libtasn1.so.6...
Downloading separate debug info for /lib/x86_64-linux-gnu/libXcursor.so.1...
Downloading separate debug info for /usr/lib/x86_64-linux-gnu/gbm/nvidia-drm_gbm.so...
Downloading separate debug info for /lib/x86_64-linux-gnu/libEGL_nvidia.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-glsi.so.575.64.03...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-egl-wayland.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-eglcore.so.575.64.03...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-gpucomp.so.575.64.03...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-egl-gbm.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-egl-xcb.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-egl-xlib.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libEGL_mesa.so.0...
Downloading separate debug info for /lib/x86_64-linux-gnu/libeis.so.1...
Downloading separate debug info for /lib/x86_64-linux-gnu/libxcb-damage.so.0...
Downloading separate debug info for system-supplied DSO at 0x70ff8db27000...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayl'.
Program terminated with signal SIGSEGV, Segmentation fault.
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
#0  __pthread_kill_implementation (no_tid=0, signo=11, threadid=<optimized out>) at ./nptl/pthread_kill.c:44

warning: 44	./nptl/pthread_kill.c: No such file or directory
[Current thread is 1 (Thread 0x70ff79888d80 (LWP 2840))]

Cannot QML trace cores :(
Downloading source file /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/main_wayland.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/widgets/kernel/qapplication.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/gui/kernel/qguiapplication.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/gui/platform/unix/qunixeventdispatcher.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_unix.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qcoreapplication.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qsocketnotifier.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qobjectdefs.h...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qobject.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qobjectdefs_impl.h...
Downloading source file /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/wayland/display.cpp...
Downloading source file /usr/src/wayland-1.23.0-1+24.04+noble+release+build3/build/../src/event-loop.c...
Downloading source file /usr/src/wayland-1.23.0-1+24.04+noble+release+build3/build/../src/wayland-server.c...
Downloading source file /usr/src/wayland-1.23.0-1+24.04+noble+release+build3/build/../src/connection.c...
Downloading source file /build/libffi-oEu4Vn/libffi-3.4.6/build/../src/x86/ffi64.c...
Downloading source file /usr/src/libffi-3.4.6-1build1/build/../src/x86/unix64.S...
Downloading source file /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/wayland/colormanagement_v1.cpp...
Download failed: Invalid argument.  Continuing without source file ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S.
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_create.c.
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/dbus/qdbusconnectionmanager.cpp...
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_glib.cpp...
Download failed: Invalid argument.  Continuing without source file ./io/../sysdeps/unix/sysv/linux/poll.c.
Downloading source file /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread.cpp...
Downloading source file /usr/include/c++/14/future...
Downloading source file /usr/include/c++/14/mutex...
Downloading source file /usr/include/x86_64-linux-gnu/c++/14/bits/gthr-default.h...
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_once.c.
Downloading source file /usr/include/c++/14/bits/std_function.h...
Downloading source file /usr/include/c++/14/bits/invoke.h...
Downloading source file /usr/include/c++/14/bits/std_thread.h...
Downloading source file /usr/include/c++/14/functional...
Downloading source file /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/backends/drm/drm_commit_thread.cpp...
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_cond_wait.c.
Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/futex-internal.c.
[Current thread is 1 (Thread 0x70ff79888d80 (LWP 2840))]

Thread 5 (Thread 0x70ff72ffd6c0 (LWP 2903)):
#0  0x000070ff89f1b4cd in __GI___poll (fds=0x70ff540014b0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x000070ff8907768e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x000070ff89017a63 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x000070ff8a86124f in QEventDispatcherGlib::processEvents (this=0x70ff54000b70, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#4  0x000070ff8aac0b6b in QEventLoop::exec (this=0x70ff72ffc7d0, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#5  0x000070ff8a9ce6b7 in QThread::exec (this=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#6  0x000070ff8a99482c in operator() (__closure=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:434
#7  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:366
#8  QThreadPrivate::start (arg=0x60ba7d4a3048) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:394
#9  0x000070ff89e9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#10 0x000070ff89f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x70ff793ff6c0 (LWP 2897)):
#0  0x000070ff89f1b4cd in __GI___poll (fds=0x60ba7d29b8e0, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x000070ff8907768e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x000070ff89017a63 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x000070ff8a86124f in QEventDispatcherGlib::processEvents (this=0x70ff74000b70, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#4  0x000070ff8aac0b6b in QEventLoop::exec (this=0x70ff793fe780, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#5  0x000070ff8a9ce6b7 in QThread::exec (this=this@entry=0x70ff8b5f6680 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#6  0x000070ff8b5d891d in QDBusConnectionManager::run (this=0x70ff8b5f6680 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/dbus/qdbusconnectionmanager.cpp:144
#7  0x000070ff8a99482c in operator() (__closure=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:434
#8  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:366
#9  QThreadPrivate::start (arg=0x70ff8b5f6680 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:394
#10 0x000070ff89e9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#11 0x000070ff89f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x70ff6adff6c0 (LWP 2902)):
#0  0x000070ff89e98d71 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x60ba7d49b894) at ./nptl/futex-internal.c:57
#1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x60ba7d49b894) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x60ba7d49b894, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#3  0x000070ff89e9b7ed in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x60ba7d49b840, cond=0x60ba7d49b868) at ./nptl/pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x60ba7d49b868, mutex=0x60ba7d49b840) at ./nptl/pthread_cond_wait.c:627
#5  0x000070ff8d4cd420 in KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}::operator()() const () at /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/backends/drm/drm_commit_thread.cpp:45
#6  0x000070ff8d4cdc0a in std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=<optimized out>) at /usr/include/c++/14/bits/invoke.h:61
#7  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=<optimized out>) at /usr/include/c++/14/bits/invoke.h:96
#8  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=<optimized out>) at /usr/include/c++/14/functional:120
#9  operator()<> (__closure=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qthread.h:138
#10 std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > (__f=<optimized out>) at /usr/include/c++/14/bits/invoke.h:61
#11 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > (__fn=<optimized out>) at /usr/include/c++/14/bits/invoke.h:96
#12 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >::_M_invoke<0> (this=<optimized out>) at /usr/include/c++/14/bits/std_thread.h:301
#13 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_thread.h:308
#14 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*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >, void>::operator() (this=0x70ff6adfe780) at /usr/include/c++/14/future:1439
#15 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, 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*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >, void>&> (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#16 std::__invoke_r<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*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#17 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*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/14/bits/std_function.h:291
#18 0x000070ff8d4c57d6 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#19 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*) (this=0x60ba7d491e80, __f=<optimized out>, __did_set=0x70ff6adfe737) at /usr/include/c++/14/future:596
#20 0x000070ff89ea1ed3 in __pthread_once_slow (once_control=0x60ba7d491e98, init_routine=0x70ff8a2eb420 <std::__once_proxy()>) at ./nptl/pthread_once.c:116
#21 0x000070ff8d4c639f in __gthread_once (__once=0x60ba7d491e98, __func=<optimized out>) at /usr/include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:713
#22 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__once=..., __f=@0x70ff6adfe750: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x70ff8d4c57a0 <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*)>) at /usr/include/c++/14/mutex:916
#23 std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (this=0x60ba7d491e80, __res=..., __ignore_failure=true) at /usr/include/c++/14/future:435
#24 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > >, void>::_M_complete_async(void) (this=0x60ba7d491e80) at /usr/include/c++/14/future:1712
#25 0x000070ff8a9c405a in std::__future_base::_State_baseV2::wait (this=0x60ba7d491e80) at /usr/include/c++/13/future:350
#26 std::__basic_future<void>::_M_get_result (this=0x60ba7d49b790) at /usr/include/c++/13/future:741
#27 std::future<void>::get (this=0x60ba7d49b790) at /usr/include/c++/13/future:913
#28 QThreadCreateThread::run (this=0x60ba7d49b780) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread.cpp:1365
#29 0x000070ff8a99482c in operator() (__closure=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:434
#30 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:366
#31 QThreadPrivate::start (arg=0x60ba7d49b780) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:394
#32 0x000070ff89e9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#33 0x000070ff89f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x70ff6a5fe6c0 (LWP 2918)):
#0  0x000070ff89f1b4cd in __GI___poll (fds=0x60ba7d9d6480, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x000070ff8907768e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x000070ff89017a63 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x000070ff8a86124f in QEventDispatcherGlib::processEvents (this=0x70ff58000b70, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#4  0x000070ff8aac0b6b in QEventLoop::exec (this=0x70ff6a5fd7d0, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#5  0x000070ff8a9ce6b7 in QThread::exec (this=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#6  0x000070ff8a99482c in operator() (__closure=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:434
#7  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:366
#8  QThreadPrivate::start (arg=0x60ba7d9ef740) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/thread/qthread_unix.cpp:394
#9  0x000070ff89e9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#10 0x000070ff89f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x70ff79888d80 (LWP 2840)):
[KCrash Handler]
#6  0x000070ff8d54a416 in KWin::ColorManagementOutputV1::ColorManagementOutputV1 (this=0x60ba7e3d2800, client=<optimized out>, id=<optimized out>, version=1, output=0x0) at /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/wayland/colormanagement_v1.cpp:580
#7  KWin::ColorManagerV1::wp_color_manager_v1_get_output (this=<optimized out>, resource=<optimized out>, id=<optimized out>, output=<optimized out>) at /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/wayland/colormanagement_v1.cpp:63
#8  0x000070ff88b7cb16 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#9  0x000070ff88b793ef in ffi_call_int (cif=cif@entry=0x7ffd1cc53300, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#10 0x000070ff88b7c0be in ffi_call (cif=cif@entry=0x7ffd1cc53300, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd1cc533d0) at ../src/x86/ffi64.c:710
#11 0x000070ff8b4e3673 in wl_closure_invoke (closure=closure@entry=0x60ba7df4e940, target=<optimized out>, target@entry=0x60ba7dd3b950, opcode=opcode@entry=1, data=<optimized out>, data@entry=0x60ba7dd16fa0, flags=2) at ../src/connection.c:1228
#12 0x000070ff8b4e839e in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x60ba7dd16fa0) at ../src/wayland-server.c:444
#13 0x000070ff8b4e67f2 in wl_event_loop_dispatch (loop=0x60ba7d4689b0, timeout=<optimized out>) at ../src/event-loop.c:1105
#14 0x000070ff8d550249 in KWin::Display::dispatchEvents (this=<optimized out>) at /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/wayland/display.cpp:138
#15 0x000070ff8aa7cce9 in QtPrivate::QSlotObjectBase::call (a=0x7ffd1cc53a00, r=<optimized out>, this=0x60ba7dbfb180, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qobjectdefs_impl.h:461
#16 doActivate<false> (sender=0x60ba7db1f2d0, signal_index=3, argv=0x7ffd1cc53a00) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qobject.cpp:4146
#17 0x000070ff8ab2fb23 in QMetaObject::activate<void, QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal> (ret=0x0, local_signal_index=0, mo=<optimized out>, sender=0x60ba7db1f2d0) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qobjectdefs.h:306
#18 QSocketNotifier::activated (this=this@entry=0x60ba7db1f2d0, _t1=..., _t2=<optimized out>, _t3=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:161
#19 0x000070ff8ab2fcc0 in QSocketNotifier::event (this=0x60ba7db1f2d0, e=<optimized out>) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qsocketnotifier.cpp:327
#20 0x000070ff8be3e21d in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x60ba7db1f2d0, e=0x7ffd1cc53b50) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/widgets/kernel/qapplication.cpp:3303
#21 0x000070ff8aab6340 in QCoreApplication::notifyInternal2 (receiver=0x60ba7db1f2d0, event=0x7ffd1cc53b50) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qcoreapplication.cpp:1106
#22 0x000070ff8a9965cc in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x60ba7d361bc0) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_unix.cpp:254
#23 0x000070ff8a9970d4 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/kernel/qeventdispatcher_unix.cpp:470
#24 0x000070ff8b374952 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#25 0x000070ff8aac0b6b in QEventLoop::exec (this=0x7ffd1cc53d30, flags=...) at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#26 0x000070ff8aab96ef in QCoreApplication::exec () at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/corelib/global/qflags.h:77
#27 0x000070ff8aede8fd in QGuiApplication::exec () at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/gui/kernel/qguiapplication.cpp:1986
#28 0x000070ff8be3a4f9 in QApplication::exec () at /usr/src/qt6-base-6.9.1-0zneon+24.04+noble+release+build117/src/widgets/kernel/qapplication.cpp:2570
#29 0x000060ba53bde548 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/kwin-4:6.4.3-0zneon+24.04+noble+release+build48/src/main_wayland.cpp:635

Reported using DrKonqi
Comment 1 djqballer 2025-07-31 20:20:47 UTC
I was not able to reproduce this with my HDMI screen. No matter what I had open, disconnecting the HDMI screen was never an issue.

Also, it turns out this only happens when I have Firefox Beta open, which is admittedly most of the time. It doesn't matter which screen Firefox Beta is open on. Also, if Firefox is closed before disconnecting a screen, there is no crash. But if Firefox is minimized or on another virtual desktop, KWin still crashes when disconnecting a DP screen.

Currently I'm running Firefox Beta 142.0b5 on one computer, and whatever the latest Firefox Developer Edition is on the 2nd computer. When I try mainline Firefox 141.0 and disconnecting DP screens, there is never a crash. I'll try older Firefox Beta versions and report back the exact version where this behavior was added.
Comment 2 djqballer 2025-07-31 22:32:56 UTC
I was able to bisect the change in Firefox Nightly to something introduced in version 142.0a1~20250708210138, but not present in the previous nightly release 142.0a1~20250707093546. Here's the changeset: https://hg-edge.mozilla.org/mozilla-central/pushloghtml?fromchange=ba6cbea862a34eee36135daf780a1516be80d8b6&tochange=4bc49e354ea316aa186e8511aa0901757aab5cb6

In particular, this commit looks suspiciously related: https://hg-edge.mozilla.org/mozilla-central/rev/f562693b5b30344af6419b1668bcbcf3a804daba
Comment 3 ctj9512 2025-08-02 05:18:24 UTC
Also getting this issue, but I have chromium with hdr patch[1] opened. Not sure if this is the cause, will investigate further.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/6771393/1
Comment 4 ctj9512 2025-08-03 03:39:43 UTC
I believe this is to fix this issue:

https://invent.kde.org/plasma/kwin/-/commit/e1fd647b979df7f0bd10065932a614a2aa806e87
Comment 5 TraceyC 2025-08-04 17:35:39 UTC
Thank you for the bug report. Based on the backtrace this looks like a duplicate of bug 504959. As noted, the merge request in that report fixes this crash. It will be available in Plasma 6.5.0.

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