Created attachment 177508 [details] yakuake-crash SUMMARY Yakuake crashes if you splitted terminal and then closes it by button. Sometimes it happens on middle-click tab close, but not very often. STEPS TO REPRODUCE 1. Start Yakuake 2. Split terminal in half horizontally or vertically. 3. Close tab at bottom right corner, above yakuake buttons (3 grouped buttons). OBSERVED RESULT 1. Crash all yakuake sessions. EXPECTED RESULT 1. Close only the current tab, including splitted terminal with a warning confirmation. SOFTWARE/OS VERSIONS Operating System: KDE neon 6.2 KDE Plasma Version: 6.2.5 KDE Frameworks Version: 6.10.0 Qt Version: 6.8.1 Kernel Version: 6.8.0-51-generic (64-bit) Graphics Platform: Wayland Memory: 14.9 GiB of RAM
I can reproduce on Fedora KDE 41 - backtrace from my system below: #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f5c2ca7f163 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:78 #2 0x00007f5c2ca25fde in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007f5c2f16f1a2 in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kf6-kcrash-6.10.0-1.fc41.x86_64/src/kcrash.cpp:596 #4 0x00007f5c2ca26090 in <signal handler called> () at /lib64/libc.so.6 #5 std::__find_if<QList<QAction*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}> >(QList<QAction*>::const_iterator, QList<QAction*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}>, std::random_access_iterator_tag) (__first=..., __last=..., __pred=...) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/tools/qcontainertools_impl.h:375 #6 std::__find_if<QList<QAction*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}> >(QList<QAction*>::const_iterator, QList<QAction*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}>) (__first=..., __last=..., __pred=...) at /usr/include/c++/14/bits/stl_algobase.h:2146 #7 std::find_if<QList<QAction*>::const_iterator, QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}>(QList<QAction*>::const_iterator, QList<QAction*>::const_iterator, QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}) (__first=..., __last=..., __pred=...) at /usr/include/c++/14/bits/stl_algo.h:3876 #8 QtPrivate::sequential_erase_if<QList<QAction*>, QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}>(QList<QAction*>&, QtPrivate::sequential_erase<QList<QAction*>, QAction*>(QList<QAction*>&, QAction* const&)::{lambda(auto:1&)#1}&) (c=QList<QAction *> (size = 5188146771280143476) = {...}, pred=...) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/tools/qcontainertools_impl.h:344 #9 0x00007f5c2e497ecd in QtPrivate::sequential_erase<QList<QAction*>, QAction*> (c=QList<QAction *> (size = 5188146771280143476) = {...}, t=@0x7ffd4b5a9f10: 0x55b29eee95d0) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/tools/qcontainertools_impl.h:376 #10 QtPrivate::sequential_erase_with_copy<QList<QAction*>, QAction*> (c=QList<QAction *> (size = 5188146771280143476) = {...}, t=<synthetic pointer>: <optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/tools/qcontainertools_impl.h:383 #11 QList<QAction*>::removeAll<QAction*> (this=0x7f5bf5c65a48 <QtPrivate::QCallableObject<void (Konsole::TabbedViewContainer::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)+8>, t=<synthetic pointer>: <optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/tools/qlist.h:596 #12 QWidget::removeAction (this=this@entry=0x55b29f0bfa00, action=0x55b29eee95d0) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/widgets/kernel/qwidget.cpp:3215 #13 0x00007f5c2f43ea2f in KActionCollection::removeAssociatedWidget (this=0x55b29eeeaac0, widget=0x55b29f0bfa00) at /usr/src/debug/kf6-kxmlgui-6.10.0-1.fc41.x86_64/src/kactioncollection.cpp:845 #14 0x00007f5c2f481258 in KXMLGUIClient::prepareXMLUnplug (this=this@entry=0x55b29eee6e28, w=0x55b29f0bfa00) at /usr/src/debug/kf6-kxmlgui-6.10.0-1.fc41.x86_64/src/kxmlguiclient.cpp:770 #15 0x00007f5c2f482ff1 in KXMLGUIFactory::removeClient (this=0x55b29f22caa0, client=0x55b29eee6e28) at /usr/src/debug/kf6-kxmlgui-6.10.0-1.fc41.x86_64/src/kxmlguifactory.cpp:429 #16 KXMLGUIFactory::removeClient (this=0x55b29f22caa0, client=client@entry=0x55b29eee6e28) at /usr/src/debug/kf6-kxmlgui-6.10.0-1.fc41.x86_64/src/kxmlguifactory.cpp:379 #17 0x00007f5bf5cfac9f in Konsole::SessionController::~SessionController (this=0x55b29eee6de0, this=<optimized out>) at /usr/src/debug/konsole-24.12.1-1.fc41.x86_64/src/session/SessionController.cpp:252 #18 0x00007f5bf5cfb315 in Konsole::SessionController::~SessionController (this=0x55b29eee6de0, this=<optimized out>) at /usr/src/debug/konsole-24.12.1-1.fc41.x86_64/src/session/SessionController.cpp:254 #19 0x00007f5c2d15323d in QObjectPrivate::deleteChildren (this=this@entry=0x55b29efd6aa0) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qobject.cpp:2211 #20 0x00007f5c2d157ed4 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qobject.cpp:1138 #21 0x00007f5bf5c50d85 in Konsole::ViewManager::~ViewManager (this=0x55b29f012810, this=<optimized out>) at /usr/src/debug/konsole-24.12.1-1.fc41.x86_64/src/ViewManager.cpp:94 #22 0x00007f5c2d15323d in QObjectPrivate::deleteChildren (this=this@entry=0x55b29efd6940) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qobject.cpp:2211 #23 0x00007f5c2d157ed4 in QObject::~QObject (this=this@entry=0x55b29f075a50, __in_chrg=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qobject.cpp:1138 #24 0x00007f5c2f70aea6 in KParts::Part::~Part (this=this@entry=0x55b29f075a50, __vtt_parm=__vtt_parm@entry=0x7f5c05f95060 <VTT for Konsole::Part+16>, this=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/kf6-kparts-6.10.0-1.fc41.x86_64/src/part.cpp:59 #25 0x00007f5c2f70db69 in KParts::ReadOnlyPart::~ReadOnlyPart (this=this@entry=0x55b29f075a50, __vtt_parm=__vtt_parm@entry=0x7f5c05f95058 <VTT for Konsole::Part+8>, this=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/kf6-kparts-6.10.0-1.fc41.x86_64/src/readonlypart.cpp:44 #26 0x00007f5c05f7b7ba in Konsole::Part::~Part (this=0x55b29f075a50, this=<optimized out>) --Type <RET> for more, q to quit, c to continue without paging-- at /usr/src/debug/konsole-24.12.1-1.fc41.x86_64/src/Part.cpp:72 #27 Konsole::Part::~Part (this=0x55b29f075a50, this=<optimized out>) at /usr/src/debug/konsole-24.12.1-1.fc41.x86_64/src/Part.cpp:72 #28 0x000055b278fed4ad in Terminal::~Terminal (this=0x55b29efda010, this=<optimized out>) at /usr/src/debug/yakuake-24.12.1-1.fc41.x86_64/app/terminal.cpp:108 #29 0x000055b278ff765c in Terminal::~Terminal (this=0x55b29efda010, this=<optimized out>) at /usr/src/debug/yakuake-24.12.1-1.fc41.x86_64/app/terminal.cpp:110 #30 std::default_delete<Terminal>::operator() (this=<optimized out>, __ptr=0x55b29efda010) at /usr/include/c++/14/bits/unique_ptr.h:93 #31 std::unique_ptr<Terminal, std::default_delete<Terminal> >::~unique_ptr (this=0x55b29f22beb8, this=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:398 #32 std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > >::~pair (this=0x55b29f22beb0, this=<optimized out>) at /usr/include/c++/14/bits/stl_pair.h:284 #33 std::destroy_at<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > (__location=0x55b29f22beb0) at /usr/include/c++/14/bits/stl_construct.h:88 #34 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > > >::destroy<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > (__a=<optimized out>, __p=0x55b29f22beb0) at /usr/include/c++/14/bits/alloc_traits.h:556 #35 std::_Rb_tree<int, std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > >, std::_Select1st<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > >::_M_destroy_node (this=<optimized out>, __p=0x55b29f22be90) at /usr/include/c++/14/bits/stl_tree.h:621 #36 std::_Rb_tree<int, std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > >, std::_Select1st<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > >::_M_drop_node (this=<optimized out>, __p=0x55b29f22be90) at /usr/include/c++/14/bits/stl_tree.h:629 #37 std::_Rb_tree<int, std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > >, std::_Select1st<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > >::_M_erase(std::_Rb_tree_node<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > >*) [clone .isra.0] (__x=0x55b29f22be90, this=<optimized out>) at /usr/include/c++/14/bits/stl_tree.h:1934 #38 0x000055b278fd191b in std::_Rb_tree<int, std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > >, std::_Select1st<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > >::~_Rb_tree (this=0x55b29efd6cb0, this=<optimized out>) at /usr/include/c++/14/bits/stl_tree.h:732 #39 std::map<int, std::unique_ptr<Terminal, std::default_delete<Terminal> >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<Terminal, std::default_delete<Terminal> > > > >::~map (this=0x55b29efd6cb0, this=<optimized out>) at /usr/include/c++/14/bits/stl_map.h:314 #40 Session::~Session (this=0x55b29efd6c70, this=<optimized out>) at /usr/src/debug/yakuake-24.12.1-1.fc41.x86_64/app/session.cpp:38 #41 0x000055b278fd1995 in Session::~Session (this=0x55b29efd6c70, this=<optimized out>) at /usr/src/debug/yakuake-24.12.1-1.fc41.x86_64/app/session.cpp:38 #42 0x00007f5c2d14cc3a in QObject::event (this=0x55b29efd6c70, e=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qobject.cpp:1404 #43 0x00007f5c2e43d678 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55b29efd6c70, e=0x55b29f345530) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/widgets/kernel/qapplication.cpp:3296 #44 0x00007f5c2d0f33f8 in QCoreApplication::notifyInternal2 (receiver=0x55b29efd6c70, event=0x55b29f345530) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1168 #45 0x00007f5c2d0f364d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1612 #46 0x00007f5c2d0f7125 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55b29eb1e280) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1968 #47 0x00007f5c2d0f852d in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1800 #48 0x00007f5c2d3edadf in postEventSourceDispatch (s=0x55b29eb83500) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #49 0x00007f5c2a49528c in g_main_dispatch (context=0x7f5c10000f30) at ../glib/gmain.c:3357 #50 g_main_context_dispatch_unlocked (context=0x7f5c10000f30) at ../glib/gmain.c:4208 #51 0x00007f5c2a4f57b8 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f5c10000f30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273 #52 0x00007f5c2a496783 in g_main_context_iteration (context=0x7f5c10000f30, may_block=1) at ../glib/gmain.c:4338 #53 0x00007f5c2d3ed233 in QEventDispatcherGlib::processEvents (this=0x55b29eb22540, flags=...) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #54 0x00007f5c2d101c7b in QEventLoop::exec (this=this@entry=0x7ffd4b5aa960, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/global/qflags.h:34 #55 0x00007f5c2d0fd3fe in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/corelib/global/qflags.h:74 #56 0x00007f5c2d8d6bfd in QGuiApplication::exec () --Type <RET> for more, q to quit, c to continue without paging-- at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/gui/kernel/qguiapplication.cpp:1975 #57 0x00007f5c2e43d5e9 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.1-11.fc41.x86_64/src/widgets/kernel/qapplication.cpp:2564 #58 0x000055b278fb592b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/yakuake-24.12.1-1.fc41.x86_64/app/main.cpp:67