Created attachment 178164 [details] Full trace of all threads of kwin_wayland crash when logging out of Plasma SUMMARY I was using Plasma 6.3.0 on Wayland in a Fedora 41 KDE installation. I logged out of Plasma. kwin_wayland crashed sometimes when logging out of Plasma with a failed assertion in libinput "(elm->next != NULL && elm->prev != NULL) || !\"list->next|prev is NULL, possibly missing list_init()\"" in frames 9-10 of the trace. Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayl'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; [Current thread is 1 (Thread 0x7fadd5ffb6c0 (LWP 1753))] (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007fae03c7b183 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78 #2 0x00007fae03c21f9e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 #3 0x00007fae0776c1a2 in KCrash::defaultCrashHandler(int) () at /lib64/libKF6Crash.so.6 #4 0x00007fae03c22050 in <signal handler called> () at /lib64/libc.so.6 #5 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #6 0x00007fae03c7b183 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78 #7 0x00007fae03c21f9e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #8 0x00007fae03c09942 in __GI_abort () at abort.c:79 #9 0x00007fae03c0985e in __assert_fail_base (fmt=0x7fae03dbecb0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fae036be580 "(elm->next != NULL && elm->prev != NULL) || !\"list->next|prev is NULL, possibly missing list_init()\"", file=file@entry=0x7fae036bc273 "../src/util-list.c", line=line@entry=71, function=function@entry=0x7fae036c19d8 <__PRETTY_FUNCTION__.1.lto_priv.12> "list_remove") at assert.c:96 #10 0x00007fae03c1a0c7 in __assert_fail (assertion=assertion@entry=0x7fae036be580 "(elm->next != NULL && elm->prev != NULL) || !\"list->next|prev is NULL, possibly missing list_init()\"", file=file@entry=0x7fae036bc273 "../src/util-list.c", line=line@entry=71, function=0x7fae036c19d8 <__PRETTY_FUNCTION__.1.lto_priv.12> "list_remove") at assert.c:105 #11 0x00007fae036a3237 in list_remove (elm=<optimized out>) at ../src/util-list.c:71 #12 0x00007fae03680e3d in list_remove (elm=<optimized out>) at ../src/libinput.c:2104 #13 libinput_seat_destroy (seat=<optimized out>) at ../src/libinput.c:2095 #14 libinput_seat_unref (seat=<optimized out>) at ../src/libinput.c:2107 #15 0x00007fae03697830 in evdev_device_destroy (device=0x55da3ca40de0) at ../src/evdev.c:3120 #16 0x00007fae03680ede in libinput_device_destroy (device=<optimized out>) at ../src/libinput.c:2164 #17 libinput_device_unref (device=<optimized out>) at ../src/libinput.c:2173 --Type <RET> for more, q to quit, c to continue without paging--c #18 0x00007fae03682a16 in libinput_event_destroy (event=0x7fada80030f0) at ../src/libinput.c:2039 #19 0x00007fae07132a03 in KWin::LibInput::Event::~Event (this=0x7fada8003c40, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/events.cpp:82 #20 KWin::LibInput::PointerEvent::~PointerEvent (this=0x7fada8003c40, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/events.cpp:137 #21 KWin::LibInput::PointerEvent::~PointerEvent (this=0x7fada8003c40, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/events.cpp:137 #22 0x00007fae0712764e in std::default_delete<KWin::LibInput::Event>::operator() (this=<optimized out>, __ptr=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:87 #23 std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >::~unique_ptr (this=0x7fada80056a8, this=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:399 #24 std::destroy_at<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > (__location=0x7fada80056a8) at /usr/include/c++/14/bits/stl_construct.h:88 #25 std::_Destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > (__pointer=0x7fada80056a8) at /usr/include/c++/14/bits/stl_construct.h:149 #26 std::_Destroy_aux<false>::__destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >*> (__first=0x7fada80056a8, __last=<optimized out>) at /usr/include/c++/14/bits/stl_construct.h:163 #27 std::_Destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >*> (__first=<optimized out>, __last=<optimized out>) at /usr/include/c++/14/bits/stl_construct.h:196 #28 std::_Destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >*, std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > (__first=<optimized out>, __last=<optimized out>) at /usr/include/c++/14/bits/alloc_traits.h:993 #29 std::deque<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >, std::allocator<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > >::_M_destroy_data_aux (this=<optimized out>, __first=Python Exception <class 'gdb.error'>: value has been optimized out , __last=Python Exception <class 'gdb.error'>: value has been optimized out ) at /usr/include/c++/14/bits/deque.tcc:878 #30 std::deque<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >, std::allocator<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > >::_M_destroy_data (this=0x55da3ca67390, __first=Python Exception <class 'gdb.error'>: value has been optimized out , __last=Python Exception <class 'gdb.error'>: value has been optimized out ) at /usr/include/c++/14/bits/stl_deque.h:2091 #31 std::deque<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >, std::allocator<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > >::~deque (this=0x55da3ca67390, this=<optimized out>) at /usr/include/c++/14/bits/stl_deque.h:1028 #32 KWin::LibInput::Connection::~Connection (this=0x55da3ca67360, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/connection.cpp:121 #33 0x00007fae071276d5 in KWin::LibInput::Connection::~Connection (this=0x55da3ca67360, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/connection.cpp:121 #34 0x00007fae0434b8ae in QObject::event (this=0x55da3ca67360, e=0x55da3cb6a660) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qobject.cpp:1403 #35 0x00007fae0543d9b8 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55da3ca67360, e=0x55da3cb6a660) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/widgets/kernel/qapplication.cpp:3296 #36 0x00007fae042f3590 in QCoreApplication::notifyInternal2 (receiver=0x55da3ca67360, event=0x55da3cb6a660) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1172 #37 0x00007fae042f37ed in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1612 #38 0x00007fae042f6f51 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55da3c9b8fb0) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1946 #39 0x00007fae042f71fd in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1800 #40 0x00007fae045efb5f in postEventSourceDispatch (s=0x7fada8000f20) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #41 0x00007fae02b1828c in g_main_dispatch (context=0x7fada8000c60) at ../glib/gmain.c:3357 #42 g_main_context_dispatch_unlocked (context=0x7fada8000c60) at ../glib/gmain.c:4208 #43 0x00007fae02b787b8 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fada8000c60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273 #44 0x00007fae02b19783 in g_main_context_iteration (context=0x7fada8000c60, may_block=1) at ../glib/gmain.c:4338 #45 0x00007fae045ef2b3 in QEventDispatcherGlib::processEvents (this=0x7fada8000b70, flags=...) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #46 0x00007fae04300993 in QEventLoop::exec (this=this@entry=0x7fadd5ffa830, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/global/qflags.h:34 #47 0x00007fae04419095 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/global/qflags.h:74 #48 0x00007fae044b67e9 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:375 #49 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:311 #50 QThreadPrivate::start (arg=0x55da3c9b68d8) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:339 #51 0x00007fae03c79168 in start_thread (arg=<optimized out>) at pthread_create.c:448 #52 0x00007fae03cfd14c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 A crash notification from abrt was shown the next time I logged in. drkonqi crashed when trying to handle the crash. I'm attaching the full trace of all threads. The crash happened 2 of about 10 times I logged out of Plasma 6.3.0. I didn't see this problem with Plasma 6.2.90 or earlier. There might be a race condition involved. Maybe destroying KWin::LibInput::Event objects sometimes led to one of the variables in the assertion being used after being freed. STEPS TO REPRODUCE 1. Log in to Plasma 6.3.0 on Wayland in a Fedora 41 KDE installation updated with the updates-testing repo enabled 2. Log out of Plasma from the Application Launcher menu 3. If the problem didn't happen, repeat 1-2 until it does OBSERVED RESULT kwin_wayland crashed sometimes when logging out of Plasma with a failed assertion in libinput EXPECTED RESULT No crashes should've happened. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Fedora 41 KDE Plasma Version: 6.3.0 KDE Frameworks Version: 6.10.0 Qt Version: 6.8.2 ADDITIONAL INFORMATION
kwin_wayland crashed when logging out with a different failed assertion "group->refcount > 0" in libinput_device_group_unref in libinput. The trace was a bit different, but a KWin::LibInput::Event was also being destroyed so the crashes might be related. Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayl'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; [Current thread is 1 (Thread 0x7f75a9ffb6c0 (LWP 26742))] (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f75e807b183 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78 #2 0x00007f75e8021f9e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 #3 0x00007f75ebca41a2 in KCrash::defaultCrashHandler(int) () at /lib64/libKF6Crash.so.6 #4 0x00007f75e8022050 in <signal handler called> () at /lib64/libc.so.6 #5 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #6 0x00007f75e807b183 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78 #7 0x00007f75e8021f9e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #8 0x00007f75e8009942 in __GI_abort () at abort.c:79 #9 0x00007f75e800985e in __assert_fail_base (fmt=0x7f75e81becb0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7f75e7be4248 "group->refcount > 0", file=file@entry=0x7f75e7be3fad "../src/libinput.c", line=line@entry=3923, function=function@entry=0x7f75e7be9310 <__PRETTY_FUNCTION__.1.lto_priv.11> "libinput_device_group_unref") at assert.c:96 #10 0x00007f75e801a0c7 in __assert_fail (assertion=assertion@entry=0x7f75e7be4248 "group->refcount > 0", file=file@entry=0x7f75e7be3fad "../src/libinput.c", line=line@entry=3923, function=function@entry=0x7f75e7be9310 <__PRETTY_FUNCTION__.1.lto_priv.11> "libinput_device_group_unref") at assert.c:105 #11 0x00007f75e7bab7a2 in libinput_device_group_unref (group=<optimized out>) at ../src/libinput.c:3923 #12 libinput_device_group_unref (group=<optimized out>) at ../src/libinput.c:3921 #13 0x00007f75e7bbf7d1 in evdev_device_destroy (device=0x559d9aea14d0) at ../src/evdev.c:3112 #14 0x00007f75e7ba8ede in libinput_device_destroy (device=<optimized out>) at ../src/libinput.c:2164 #15 libinput_device_unref (device=<optimized out>) at ../src/libinput.c:2173 #16 0x00007f75e7baaa16 in libinput_event_destroy (event=0x7f7588006ba0) at ../src/libinput.c:2039 #17 0x00007f75eb732a03 in KWin::LibInput::Event::~Event (this=0x7f7588005e40, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/events.cpp:82 --Type <RET> for more, q to quit, c to continue without paging--c #18 KWin::LibInput::PointerEvent::~PointerEvent (this=0x7f7588005e40, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/events.cpp:137 #19 KWin::LibInput::PointerEvent::~PointerEvent (this=0x7f7588005e40, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/events.cpp:137 #20 0x00007f75eb72764e in std::default_delete<KWin::LibInput::Event>::operator() (this=<optimized out>, __ptr=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:87 #21 std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >::~unique_ptr (this=0x7f7588007dc8, this=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:399 #22 std::destroy_at<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > (__location=0x7f7588007dc8) at /usr/include/c++/14/bits/stl_construct.h:88 #23 std::_Destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > (__pointer=0x7f7588007dc8) at /usr/include/c++/14/bits/stl_construct.h:149 #24 std::_Destroy_aux<false>::__destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >*> (__first=0x7f7588007dc8, __last=<optimized out>) at /usr/include/c++/14/bits/stl_construct.h:163 #25 std::_Destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >*> (__first=<optimized out>, __last=<optimized out>) at /usr/include/c++/14/bits/stl_construct.h:196 #26 std::_Destroy<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >*, std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > (__first=<optimized out>, __last=<optimized out>) at /usr/include/c++/14/bits/alloc_traits.h:993 #27 std::deque<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >, std::allocator<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > >::_M_destroy_data_aux (this=<optimized out>, __first=Python Exception <class 'gdb.error'>: value has been optimized out , __last=Python Exception <class 'gdb.error'>: value has been optimized out ) at /usr/include/c++/14/bits/deque.tcc:878 #28 std::deque<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >, std::allocator<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > >::_M_destroy_data (this=0x559d9ae0d840, __first=Python Exception <class 'gdb.error'>: value has been optimized out , __last=Python Exception <class 'gdb.error'>: value has been optimized out ) at /usr/include/c++/14/bits/stl_deque.h:2091 #29 std::deque<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> >, std::allocator<std::unique_ptr<KWin::LibInput::Event, std::default_delete<KWin::LibInput::Event> > > >::~deque (this=0x559d9ae0d840, this=<optimized out>) at /usr/include/c++/14/bits/stl_deque.h:1028 #30 KWin::LibInput::Connection::~Connection (this=0x559d9ae0d810, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/connection.cpp:121 #31 0x00007f75eb7276d5 in KWin::LibInput::Connection::~Connection (this=0x559d9ae0d810, this=<optimized out>) at /usr/src/debug/kwin-6.3.0-1.fc41.x86_64/src/backends/libinput/connection.cpp:121 #32 0x00007f75e874b8ae in QObject::event (this=0x559d9ae0d810, e=0x559d9afca6a0) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qobject.cpp:1403 #33 0x00007f75e9a3d9b8 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x559d9ae0d810, e=0x559d9afca6a0) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/widgets/kernel/qapplication.cpp:3296 #34 0x00007f75e86f3590 in QCoreApplication::notifyInternal2 (receiver=0x559d9ae0d810, event=0x559d9afca6a0) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1172 #35 0x00007f75e86f37ed in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1612 #36 0x00007f75e86f6f51 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x559d9ae170e0) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1946 #37 0x00007f75e86f71fd in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1800 #38 0x00007f75e89efb5f in postEventSourceDispatch (s=0x7f7588000f20) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #39 0x00007f75e707028c in g_main_dispatch (context=0x7f7588000c60) at ../glib/gmain.c:3357 #40 g_main_context_dispatch_unlocked (context=0x7f7588000c60) at ../glib/gmain.c:4208 #41 0x00007f75e70d07b8 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f7588000c60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273 #42 0x00007f75e7071783 in g_main_context_iteration (context=0x7f7588000c60, may_block=1) at ../glib/gmain.c:4338 #43 0x00007f75e89ef2b3 in QEventDispatcherGlib::processEvents (this=0x7f7588000b70, flags=...) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #44 0x00007f75e8700993 in QEventLoop::exec (this=this@entry=0x7f75a9ffa830, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/global/qflags.h:34 #45 0x00007f75e8819095 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/global/qflags.h:74 #46 0x00007f75e88b67e9 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:375 #47 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:311 #48 QThreadPrivate::start (arg=0x7f75cc00f378) at /usr/src/debug/qt6-qtbase-6.8.2-2.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:339 #49 0x00007f75e8079168 in start_thread (arg=<optimized out>) at pthread_create.c:448 #50 0x00007f75e80fd14c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Probably related to https://invent.kde.org/plasma/kwin/-/commit/9fe2cb080e68af072f1012232d3f4ad0255553be
Git commit ce211cde5119cd09032810b4ff1500f4a29aaa04 by Vlad Zahorodnii. Committed on 12/02/2025 at 14:43. Pushed by vladz into branch 'master'. backends/libinput: Clear event queue before destroying input devices The event objects can be destroyed after libinput_unref(), which is illegal. M +1 -0 src/backends/libinput/connection.cpp https://invent.kde.org/plasma/kwin/-/commit/ce211cde5119cd09032810b4ff1500f4a29aaa04
Git commit 016655e45ee1b5d3cd5a4934510c96409dce5cd8 by Vlad Zahorodnii. Committed on 12/02/2025 at 15:54. Pushed by vladz into branch 'Plasma/6.3'. backends/libinput: Clear event queue before destroying input devices The event objects can be destroyed after libinput_unref(), which is illegal. (cherry picked from commit ce211cde5119cd09032810b4ff1500f4a29aaa04) Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org> M +1 -0 src/backends/libinput/connection.cpp https://invent.kde.org/plasma/kwin/-/commit/016655e45ee1b5d3cd5a4934510c96409dce5cd8