Bug 498846 - Yakuake crashes when closing a tab that contains a split view
Summary: Yakuake crashes when closing a tab that contains a split view
Status: CONFIRMED
Alias: None
Product: yakuake
Classification: Applications
Component: general (show other bugs)
Version: 24.12.1
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Eike Hein
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-18 14:12 UTC by ZhMstr
Modified: 2025-01-23 05:49 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/120467/events/bf2f7a343e5b460fb80c2e2d31a06e48/


Attachments
yakuake-crash (1.44 MB, video/x-matroska)
2025-01-18 14:12 UTC, ZhMstr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ZhMstr 2025-01-18 14:12:33 UTC
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
Comment 1 John Kizer 2025-01-23 05:44:22 UTC
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