Bug 509827

Summary: kwin_wayland crashes in KWin::GLFramebuffer::~GLFramebuffer with SIGABRT on exit/restart (libepoxy / GLFramebuffer cleanup)
Product: [Plasma] kwin Reporter: altayer93
Component: generic-crashAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: kdedev, nate
Priority: NOR Keywords: drkonqi
Version First Reported In: 6.3.6   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description altayer93 2025-09-23 14:19:54 UTC
Application: kwin_wayland (6.3.6)
 (Compiled from sources)
ApplicationNotResponding [ANR]: false
Qt Version: 6.8.2
Frameworks Version: 6.13.0
Operating System: Linux 6.16.7+deb14-amd64 x86_64
Windowing System: Wayland
Distribution: Debian GNU/Linux forky/sid
DrKonqi: 6.3.4 [CoredumpBackend]

-- Information about the crash:
Report:

Package: kwin-wayland
Version: 
Severity: normal

Dear Maintainer,

On my Debian testing (forky) system, kwin_wayland consistently crashes with a SIGABRT when I exit or restart KWin.

This does not occur during normal use, only at shutdown/restart of the compositor. The session otherwise runs fine.

Steps to reproduce

1.Start a Wayland session with kwin_wayland.

2.Restart or Logout then Log back In

3.Observe crash.

Observed behavior

-kwin_wayland aborts with signal SIGABRT.

-Backtrace shows failure inside libepoxy when trying to call glDeleteRenderbuffers after the GL context has already been destroyed.

Relevant backtrace excerpt:

#8  epoxy_get_proc_address ("glDeleteRenderbuffers")
#10 epoxy_glDeleteRenderbuffers_global_rewrite_ptr
#11 KWin::GLFramebuffer::~GLFramebuffer
...
#29 KWin::QPA::EGLPlatformContext::makeCurrent
#33 QQuickWindow::~QQuickWindow
#38 KWin::CompositedOutlineVisual::~CompositedOutlineVisual
#43 KWin::Outline::compositingChanged
#47 KWin::WaylandCompositor::stop
#49 KWin::Compositor::reinitialize
...
#68 main (main_wayland.cpp:622)

Warnings also appeared in gdb about mismatched build-ids and deleted mmap files, but those are likely unrelated (normal for testing).

Expected behavior:

KWin should shut down gracefully without aborting, even if GL resources are cleaned up after the context has been destroyed.

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin_wayland), signal: Aborted


warning: File /usr/lib/x86_64-linux-gnu/libgbm.so.1.0.0 doesn't match build-id from core-file during file-backed mapping processing

warning: Can't open file /usr/lib/x86_64-linux-gnu/libKF6KIOGui.so.6.13.0 (deleted) during file-backed mapping note processing

warning: Can't open file /usr/lib/x86_64-linux-gnu/libKF6KIOCore.so.6.13.0 (deleted) during file-backed mapping note processing

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

warning: File /usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0.0.0 doesn't match build-id from core-file during file-backed mapping processing

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

warning: Can't open file /memfd:/.glXXXXXX (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

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

warning: Can't open file /usr/lib/x86_64-linux-gnu/libgallium-25.2.2-1.so 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:xwayland-shared (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 /home/wolf/.cache/plasma_theme_breeze-dark.kcache (deleted) during file-backed mapping note processing

warning: Can't open file /usr/lib/x86_64-linux-gnu/libKF6KIOWidgets.so.6.13.0 (deleted) during file-backed mapping note processing

warning: Can't open file /usr/lib/x86_64-linux-gnu/libKF6KIOFileWidgets.so.6.13.0 (deleted) during file-backed mapping note processing
[New LWP 7747]
[New LWP 7771]
[New LWP 7770]
[New LWP 7772]
[New LWP 7754]
[New LWP 7787]

warning: Build-id of /lib/x86_64-linux-gnu/libgbm.so.1 does not match core file.

warning: Build-id of /lib/x86_64-linux-gnu/libKF6KIOGui.so.6 does not match core file.

warning: Build-id of /lib/x86_64-linux-gnu/libKF6KIOCore.so.6 does not match core file.

warning: Build-id of /lib/x86_64-linux-gnu/libKF6KIOFileWidgets.so.6 does not match core file.

warning: Build-id of /lib/x86_64-linux-gnu/libKF6KIOWidgets.so.6 does not match core file.

warning: Build-id of /lib/x86_64-linux-gnu/libEGL_mesa.so.0 does not match core file.

warning: Could not load shared library symbols for 7 libraries, e.g. /lib/x86_64-linux-gnu/libgbm.so.1.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
[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 --xwayland-fd 9 --xwayland-display :1 --xwayland-xauthority /run/user/1000/xauth_bjxSUN --xwayland'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007fc1e929e95c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
[Current thread is 1 (Thread 0x7fc1e27bc2c0 (LWP 7747))]
Cannot QML trace cores :(
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py:547: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
  boot_time = datetime.utcfromtimestamp(psutil.boot_time()).strftime('%Y-%m-%dT%H:%M:%S')
Python Exception <class 'gdb.error'>: value has been optimized out
Python Exception <class 'gdb.error'>: value has been optimized out
Python Exception <class 'gdb.error'>: value has been optimized out
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py:564: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
  'timestamp': datetime.utcnow().isoformat(),
Python Exception <class 'gdb.error'>: value has been optimized out
[Current thread is 1 (Thread 0x7fc1e27bc2c0 (LWP 7747))]

Thread 6 (Thread 0x7fc1d0b326c0 (LWP 7787)):
#0  0x00007fc1e92a49ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fc1e9299668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fc1e92996ad in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fc1e930de6e in ppoll () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007fc1e82ad68c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fc1e82add20 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fc1e9ba4323 in QEventDispatcherGlib::processEvents (this=0x7fc1b8000b70, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:399
#7  0x00007fc1e9998913 in QEventLoop::exec (this=0x7fc1d0b317c0, flags=...) at ./src/corelib/global/qflags.h:34
#8  0x00007fc1e9a6983c in QThread::exec (this=<optimized out>) at ./src/corelib/global/qflags.h:74
#9  0x00007fc1e9ae06ba in operator() (__closure=<optimized out>) at ./src/corelib/thread/qthread_unix.cpp:375
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at ./src/corelib/thread/qthread_unix.cpp:311
#11 QThreadPrivate::start (arg=0x559f4b1bcb70) at ./src/corelib/thread/qthread_unix.cpp:339
#12 0x00007fc1e929cb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x00007fc1e931a7b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6

Thread 5 (Thread 0x7fc1e23ff6c0 (LWP 7754)):
#0  0x00007fc1e92a49ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fc1e9299668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fc1e92996ad in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fc1e930de6e in ppoll () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007fc1e82ad68c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fc1e82add20 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fc1e9ba4323 in QEventDispatcherGlib::processEvents (this=0x7fc1dc000b70, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:399
#7  0x00007fc1e9998913 in QEventLoop::exec (this=0x7fc1e23fe770, flags=...) at ./src/corelib/global/qflags.h:34
#8  0x00007fc1e9a6983c in QThread::exec (this=<optimized out>) at ./src/corelib/global/qflags.h:74
#9  0x00007fc1ea977efe in ?? () from /lib/x86_64-linux-gnu/libQt6DBus.so.6
#10 0x00007fc1e9ae06ba in operator() (__closure=<optimized out>) at ./src/corelib/thread/qthread_unix.cpp:375
#11 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at ./src/corelib/thread/qthread_unix.cpp:311
#12 QThreadPrivate::start (arg=0x7fc1eaa16b20) at ./src/corelib/thread/qthread_unix.cpp:339
#13 0x00007fc1e929cb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#14 0x00007fc1e931a7b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6

Thread 4 (Thread 0x7fc1d3fff6c0 (LWP 7772)):
#0  0x00007fc1e92a49ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fc1e9299668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fc1e92996ad in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fc1e930de6e in ppoll () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007fc1e82ad68c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fc1e82add20 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fc1e9ba4323 in QEventDispatcherGlib::processEvents (this=0x7fc1cc000b70, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:399
#7  0x00007fc1e9998913 in QEventLoop::exec (this=0x7fc1d3ffe7c0, flags=...) at ./src/corelib/global/qflags.h:34
#8  0x00007fc1e9a6983c in QThread::exec (this=<optimized out>) at ./src/corelib/global/qflags.h:74
#9  0x00007fc1e9ae06ba in operator() (__closure=<optimized out>) at ./src/corelib/thread/qthread_unix.cpp:375
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at ./src/corelib/thread/qthread_unix.cpp:311
#11 QThreadPrivate::start (arg=0x559f4ad7e768) at ./src/corelib/thread/qthread_unix.cpp:339
#12 0x00007fc1e929cb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x00007fc1e931a7b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6

Thread 3 (Thread 0x7fc1e11ff6c0 (LWP 7770)):
#0  0x00007fc1e92a49ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fc1e9299668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fc1e9299c9c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fc1e929c158 in pthread_cond_wait () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007fc1ec9028e1 in operator() (__closure=0x559f4ad5d848) at ./src/backends/drm/drm_commit_thread.cpp:44
#5  0x00007fc1ec902d89 in std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#6  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#7  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/functional:120
#8  operator()<> (__closure=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qthread.h:128
#9  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=...) at /usr/include/c++/14/bits/invoke.h:61
#10 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#11 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
#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&& ...)> > >::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_thread.h:308
#13 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=0x7fc1e11fe780) at /usr/include/c++/14/future:1439
#14 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
#15 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
#16 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
#17 0x00007fc1ec9030ed in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#18 std::__future_base::_State_baseV2::_M_do_set (this=0x559f4ad5d820, __f=<optimized out>, __did_set=0x7fc1e11fe737) at /usr/include/c++/14/future:596
#19 0x00007fc1e92a1bc7 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#20 0x00007fc1e92a1c39 in pthread_once () from /lib/x86_64-linux-gnu/libc.so.6
#21 0x00007fc1ec8ff4f8 in __gthread_once (__once=0x559f4ad5d838, __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*> (__once=..., __f=@0x7fc1e11fe750: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7fc1ec9030c0 <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 (this=0x559f4ad5d820, __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=0x559f4ad5d820) at /usr/include/c++/14/future:1712
#25 0x00007fc1e9a621f5 in std::__future_base::_State_baseV2::wait (this=0x559f4ad5d820) at /usr/include/c++/14/future:357
#26 std::__basic_future<void>::_M_get_result (this=0x559f4ad804e0) at /usr/include/c++/14/future:748
#27 std::future<void>::get (this=0x559f4ad804e0) at /usr/include/c++/14/future:920
#28 QThreadCreateThread::run (this=0x559f4ad804d0) at ./src/corelib/thread/qthread.cpp:1282
#29 0x00007fc1e9ae06ba in operator() (__closure=<optimized out>) at ./src/corelib/thread/qthread_unix.cpp:375
#30 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at ./src/corelib/thread/qthread_unix.cpp:311
#31 QThreadPrivate::start (arg=0x559f4ad804d0) at ./src/corelib/thread/qthread_unix.cpp:339
#32 0x00007fc1e929cb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#33 0x00007fc1e931a7b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7fc1e09fe6c0 (LWP 7771)):
#0  0x00007fc1e92a49ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fc1e9299668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fc1e9299c9c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fc1e929c158 in pthread_cond_wait () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007fc1ec9028e1 in operator() (__closure=0x559f4ad80388) at ./src/backends/drm/drm_commit_thread.cpp:44
#5  0x00007fc1ec902d89 in std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#6  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#7  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/functional:120
#8  operator()<> (__closure=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qthread.h:128
#9  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=...) at /usr/include/c++/14/bits/invoke.h:61
#10 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:49&& ...)> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#11 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
#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&& ...)> > >::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_thread.h:308
#13 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=0x7fc1e09fd780) at /usr/include/c++/14/future:1439
#14 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
#15 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
#16 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
#17 0x00007fc1ec9030ed in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#18 std::__future_base::_State_baseV2::_M_do_set (this=0x559f4ad80360, __f=<optimized out>, __did_set=0x7fc1e09fd737) at /usr/include/c++/14/future:596
#19 0x00007fc1e92a1bc7 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#20 0x00007fc1e92a1c39 in pthread_once () from /lib/x86_64-linux-gnu/libc.so.6
#21 0x00007fc1ec8ff4f8 in __gthread_once (__once=0x559f4ad80378, __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*> (__once=..., __f=@0x7fc1e09fd750: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7fc1ec9030c0 <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 (this=0x559f4ad80360, __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=0x559f4ad80360) at /usr/include/c++/14/future:1712
#25 0x00007fc1e9a621f5 in std::__future_base::_State_baseV2::wait (this=0x559f4ad80360) at /usr/include/c++/14/future:357
#26 std::__basic_future<void>::_M_get_result (this=0x559f4ad76df0) at /usr/include/c++/14/future:748
#27 std::future<void>::get (this=0x559f4ad76df0) at /usr/include/c++/14/future:920
#28 QThreadCreateThread::run (this=0x559f4ad76de0) at ./src/corelib/thread/qthread.cpp:1282
#29 0x00007fc1e9ae06ba in operator() (__closure=<optimized out>) at ./src/corelib/thread/qthread_unix.cpp:375
#30 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at ./src/corelib/thread/qthread_unix.cpp:311
#31 QThreadPrivate::start (arg=0x559f4ad76de0) at ./src/corelib/thread/qthread_unix.cpp:339
#32 0x00007fc1e929cb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#33 0x00007fc1e931a7b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7fc1e27bc2c0 (LWP 7747)):
[KCrash Handler]
#4  0x00007fc1e929e95c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x00007fc1e9249cc2 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x00007fc1e92324ac in abort () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007fc1e9232420 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x00007fc1eceabfef in epoxy_get_proc_address (name=0x7fc1ecebc596 <entrypoint_strings+10038> "glDeleteRenderbuffers") at ../src/dispatch_common.c:872
#9  0x00007fc1ece818ea in epoxy_glDeleteRenderbuffers_resolver () at src/gl_generated_dispatch.c:81806
#10 epoxy_glDeleteRenderbuffers_global_rewrite_ptr (n=1, renderbuffers=0x559f4b74cbf4) at src/gl_generated_dispatch.c:115003
#11 0x00007fc1ec72f9d2 in KWin::GLFramebuffer::~GLFramebuffer (this=0x559f4b74cbf0, __in_chrg=<optimized out>) at ./src/opengl/glframebuffer.cpp:123
#12 0x0000559f3d849956 in std::default_delete<KWin::GLFramebuffer>::operator() (this=<optimized out>, __ptr=0x559f4b74cbf0) at /usr/include/c++/14/bits/unique_ptr.h:87
#13 std::default_delete<KWin::GLFramebuffer>::operator() (this=<optimized out>, __ptr=0x559f4b74cbf0) at /usr/include/c++/14/bits/unique_ptr.h:87
#14 std::__uniq_ptr_impl<KWin::GLFramebuffer, std::default_delete<KWin::GLFramebuffer> >::reset (this=0x559f4bb042d8, __p=0x0) at /usr/include/c++/14/bits/unique_ptr.h:205
#15 std::unique_ptr<KWin::GLFramebuffer, std::default_delete<KWin::GLFramebuffer> >::reset (this=0x559f4bb042d8, __p=0x0) at /usr/include/c++/14/bits/unique_ptr.h:504
#16 KWin::QPA::EGLRenderTarget::~EGLRenderTarget (this=0x559f4bb042d0, __in_chrg=<optimized out>) at ./src/plugins/qpa/eglplatformcontext.cpp:38
#17 0x0000559f3d84ae12 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x559f4bb042c0) at /usr/include/c++/14/bits/shared_ptr_base.h:346
#18 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x559f4bb042c0) at /usr/include/c++/14/bits/shared_ptr_base.h:317
#19 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x559f4bb69788, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/shared_ptr_base.h:1069
#20 std::__shared_ptr<KWin::QPA::EGLRenderTarget, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x559f4bb69780, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/shared_ptr_base.h:1525
#21 std::shared_ptr<KWin::QPA::EGLRenderTarget>::~shared_ptr (this=0x559f4bb69780, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/shared_ptr.h:175
#22 std::destroy_at<std::shared_ptr<KWin::QPA::EGLRenderTarget> > (__location=0x559f4bb69780) at /usr/include/c++/14/bits/stl_construct.h:88
#23 std::_Destroy<std::shared_ptr<KWin::QPA::EGLRenderTarget> > (__pointer=0x559f4bb69780) at /usr/include/c++/14/bits/stl_construct.h:149
#24 std::_Destroy_aux<false>::__destroy<std::shared_ptr<KWin::QPA::EGLRenderTarget>*> (__first=0x559f4bb69780, __last=<optimized out>) at /usr/include/c++/14/bits/stl_construct.h:163
#25 std::_Destroy<std::shared_ptr<KWin::QPA::EGLRenderTarget>*> (__first=<optimized out>, __last=<optimized out>) at /usr/include/c++/14/bits/stl_construct.h:196
#26 std::_Destroy<std::shared_ptr<KWin::QPA::EGLRenderTarget>*, std::shared_ptr<KWin::QPA::EGLRenderTarget> > (__first=<optimized out>, __last=<optimized out>) at /usr/include/c++/14/bits/alloc_traits.h:993
#27 std::vector<std::shared_ptr<KWin::QPA::EGLRenderTarget>, std::allocator<std::shared_ptr<KWin::QPA::EGLRenderTarget> > >::_M_erase_at_end (this=0x559f4baea960, __pos=0x559f4bb69780) at /usr/include/c++/14/bits/stl_vector.h:1947
#28 std::vector<std::shared_ptr<KWin::QPA::EGLRenderTarget>, std::allocator<std::shared_ptr<KWin::QPA::EGLRenderTarget> > >::clear (this=0x559f4baea960) at /usr/include/c++/14/bits/stl_vector.h:1608
#29 KWin::QPA::EGLPlatformContext::makeCurrent (this=0x559f4baea8e0, surface=<optimized out>) at ./src/plugins/qpa/eglplatformcontext.cpp:72
#30 0x00007fc1ea48f59d in QOpenGLContext::makeCurrent (this=0x559f4baea510, surface=0x559f4baba3f0) at ./src/gui/kernel/qopenglcontext.cpp:680
#31 0x00007fc1ea49e31e in QRhiGles2::ensureContext (this=0x559f4bab43f0, surface=0x559f4baba3f0) at ./src/gui/rhi/qrhigles2.cpp:646
#32 0x00007fc1ebf60348 in QSGGuiThreadRenderLoop::windowDestroyed (this=0x559f4b939610, window=0x559f4b9b8830) at ./src/quick/scenegraph/qsgrenderloop.cpp:345
#33 0x00007fc1ebeccb1e in QQuickWindow::~QQuickWindow (this=<optimized out>, this=<optimized out>) at ./src/quick/items/qquickwindow.cpp:1188
#34 0x00007fc1ec059221 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement (this=<optimized out>, this=<optimized out>) at ./src/qml/qml/qqmlprivate.h:104
#35 QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement (this=<optimized out>, this=<optimized out>) at ./src/qml/qml/qqmlprivate.h:104
#36 0x00007fc1ec753a81 in std::default_delete<QObject>::operator() (this=<optimized out>, __ptr=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:87
#37 std::unique_ptr<QObject, std::default_delete<QObject> >::~unique_ptr (this=0x559f4b74d010, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:399
#38 KWin::CompositedOutlineVisual::~CompositedOutlineVisual (this=0x559f4b74cff0, __in_chrg=<optimized out>) at ./src/outline.cpp:152
#39 0x00007fc1ec753d4a in KWin::CompositedOutlineVisual::~CompositedOutlineVisual (this=0x559f4b74cff0, __in_chrg=<optimized out>) at ./src/outline.cpp:150
#40 std::default_delete<KWin::OutlineVisual>::operator() (this=<optimized out>, __ptr=0x559f4b74cff0) at /usr/include/c++/14/bits/unique_ptr.h:93
#41 std::__uniq_ptr_impl<KWin::OutlineVisual, std::default_delete<KWin::OutlineVisual> >::reset (this=0x559f4ac79b20, __p=0x0) at /usr/include/c++/14/bits/unique_ptr.h:205
#42 std::unique_ptr<KWin::OutlineVisual, std::default_delete<KWin::OutlineVisual> >::reset (this=0x559f4ac79b20, __p=0x0) at /usr/include/c++/14/bits/unique_ptr.h:504
#43 KWin::Outline::compositingChanged (this=0x559f4ac79b10) at ./src/outline.cpp:112
#44 0x00007fc1e99e4043 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:486
#45 doActivate<false> (sender=0x559f4aeefef0, signal_index=3, argv=0x7ffe2f92fff0) at ./src/corelib/kernel/qobject.cpp:4115
#46 0x00007fc1ec60d3e3 in KWin::Compositor::compositingToggled (this=this@entry=0x559f4aeefef0, _t1=<optimized out>, _t1@entry=false) at ./obj-x86_64-linux-gnu/src/kwin_autogen/include/moc_compositor.cpp:202
#47 0x00007fc1ec60fd7e in KWin::WaylandCompositor::stop (this=0x559f4aeefef0) at ./src/compositor_wayland.cpp:282
#48 KWin::WaylandCompositor::stop (this=0x559f4aeefef0) at ./src/compositor_wayland.cpp:244
#49 0x00007fc1ec60d30e in KWin::Compositor::reinitialize (this=0x559f4aeefef0) at ./src/compositor.cpp:126
#50 0x00007fc1ec6117a5 in KWin::WaylandCompositor::composite (this=0x559f4aeefef0, renderLoop=<optimized out>) at ./src/compositor_wayland.cpp:326
#51 0x00007fc1e99e4043 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:486
#52 doActivate<false> (sender=0x559f4ad38ce0, signal_index=5, argv=0x7ffe2f930650) at ./src/corelib/kernel/qobject.cpp:4115
#53 0x00007fc1ec6363b6 in KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/src/kwin_autogen/include/moc_renderloop.cpp:211
#54 0x00007fc1ec63751a in KWin::RenderLoopPrivate::dispatch (this=0x559f4ac8d8c0) at ./src/core/renderloop.cpp:195
#55 0x00007fc1e99e4043 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:486
#56 doActivate<false> (sender=0x559f4ac8db00, signal_index=3, argv=0x7ffe2f930780) at ./src/corelib/kernel/qobject.cpp:4115
#57 0x00007fc1e99e6a8e in QTimer::timeout (this=<optimized out>, _t1=...) at ./obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qtimer.cpp:223
#58 0x00007fc1e99d5b69 in QObject::event (this=0x559f4ac8db00, e=0x7ffe2f930910) at ./src/corelib/kernel/qobject.cpp:1393
#59 0x00007fc1eadb47e5 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x559f4ac8db00, e=0x7ffe2f930910) at ./src/widgets/kernel/qapplication.cpp:3296
#60 0x00007fc1e9996630 in QCoreApplication::notifyInternal2 (receiver=0x559f4ac8db00, event=0x7ffe2f930910) at ./src/corelib/kernel/qcoreapplication.cpp:1172
#61 0x00007fc1e9ad9bbd in QTimerInfoList::activateTimers (this=0x559f4ad03798) at ./src/corelib/kernel/qtimerinfo_unix.cpp:426
#62 0x00007fc1e9ae0f96 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at ./src/corelib/kernel/qeventdispatcher_unix.cpp:475
#63 0x00007fc1ea5b9b31 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at ./src/gui/platform/unix/qunixeventdispatcher.cpp:27
#64 0x00007fc1e9998913 in QEventLoop::exec (this=this@entry=0x7ffe2f930ae0, flags=..., flags@entry=...) at ./src/corelib/global/qflags.h:34
#65 0x00007fc1e999a20a in QCoreApplication::exec () at ./src/corelib/global/qflags.h:74
#66 0x00007fc1ea1d9f20 in QGuiApplication::exec () at ./src/gui/kernel/qguiapplication.cpp:1975
#67 0x00007fc1eadb1cf9 in QApplication::exec () at ./src/widgets/kernel/qapplication.cpp:2564
#68 0x0000559f3d81c498 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main_wayland.cpp:622

Reported using DrKonqi
This report was filed against 'kde' because the product 'kwin' could not be located in Bugzilla. Add it to drkonqi's mappings file!
Comment 1 TraceyC 2025-09-23 15:59:55 UTC
The top of the trace seems related to bug 500114
Comment 2 Nate Graham 2025-09-23 16:13:29 UTC
Well spotted. Looks like the same one.

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