> On June 18, 2014, 1:52 p.m., Dominik Haumann wrote:
> > Still crashes Kate on close or session switch:
> > 
> > #6  0x00007f8f1c217d71 in QList<QWidget*>::QList (this=0x7fff3f64f950, 
> > l=...) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/tools/qlist.h:733
> > #7  0x00007f8f1c2140df in Konsole::ViewContainer::views (this=0x0) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewContainer.cpp:192
> > #8  0x00007f8f1c21d759 in Konsole::ViewManager::updateDetachViewState 
> > (this=0x1cf2d50) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewManager.cpp:276
> > #9  0x00007f8f1c21fb09 in Konsole::ViewManager::viewDestroyed 
> > (this=0x1cf2d50, view=0x1d0d400) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewManager.cpp:772
> > #10 0x00007f8f1c228a53 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, 
> > QtPrivate::List<QWidget*>, void, void 
> > (Konsole::ViewManager::*)(QWidget*)>::call (f=(void 
> > (Konsole::ViewManager::*)(Konsole::ViewManager * const, QWidget *)) 
> > 0x7f8f1c21fa10 <Konsole::ViewManager::viewDestroyed(QWidget*)>, 
> > o=0x1cf2d50, arg=0x7fff3f64fc70) at 
> > /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:508
> > #11 0x00007f8f1c227e92 in QtPrivate::FunctionPointer<void 
> > (Konsole::ViewManager::*)(QWidget*)>::call<QtPrivate::List<QWidget*>, void> 
> > (f=(void (Konsole::ViewManager::*)(Konsole::ViewManager * const, QWidget 
> > *)) 0x7f8f1c21fa10 <Konsole::ViewManager::viewDestroyed(QWidget*)>, 
> > o=0x1cf2d50, arg=0x7fff3f64fc70) at 
> > /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:527
> > #12 0x00007f8f1c22707b in QtPrivate::QSlotObject<void 
> > (Konsole::ViewManager::*)(QWidget*), QtPrivate::List<QWidget*>, void>::impl 
> > (which=1, this_=0x1d0cd00, r=0x1cf2d50, a=0x7fff3f64fc70, ret=0x0) at 
> > /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobject_impl.h:149
> > #13 0x00007f8f3d9f0f95 in QtPrivate::QSlotObjectBase::call (this=0x1d0cd00, 
> > r=0x1cf2d50, a=0x7fff3f64fc70) at 
> > ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
> > #14 0x00007f8f3d9ee147 in QMetaObject::activate (sender=0x1d05800, 
> > signalOffset=3, local_signal_index=7, argv=0x7fff3f64fc70) at 
> > kernel/qobject.cpp:3668
> > #15 0x00007f8f3d9eda62 in QMetaObject::activate (sender=0x1d05800, 
> > m=0x7f8f1c4a5f80 <Konsole::ViewContainer::staticMetaObject>, 
> > local_signal_index=7, argv=0x7fff3f64fc70) at kernel/qobject.cpp:3548
> > #16 0x00007f8f1c23b84d in Konsole::ViewContainer::viewRemoved 
> > (this=0x1d05800, _t1=0x1d0d400) at 
> > /home/dh/kde/kf5/build/kde/applications/konsole/src/moc_ViewContainer.cpp:296
> > #17 0x00007f8f1c213f7e in Konsole::ViewContainer::viewDestroyed 
> > (this=0x1d05800, object=0x1d0d400) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewContainer.cpp:170
> > #18 0x00007f8f1c21a2a4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, 
> > QtPrivate::List<QObject*>, void, void 
> > (Konsole::ViewContainer::*)(QObject*)>::call (f=(void 
> > (Konsole::ViewContainer::*)(Konsole::ViewContainer * const, QObject *)) 
> > 0x7f8f1c213eb4 <Konsole::ViewContainer::viewDestroyed(QObject*)>, 
> > o=0x1d05800, arg=0x7fff3f64ff70) at 
> > /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:508
> > #19 0x00007f8f1c219ea2 in QtPrivate::FunctionPointer<void 
> > (Konsole::ViewContainer::*)(QObject*)>::call<QtPrivate::List<QObject*>, 
> > void> (f=(void (Konsole::ViewContainer::*)(Konsole::ViewContainer * const, 
> > QObject *)) 0x7f8f1c213eb4 
> > <Konsole::ViewContainer::viewDestroyed(QObject*)>, o=0x1d05800, 
> > arg=0x7fff3f64ff70) at 
> > /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:527
> > #20 0x00007f8f1c219531 in QtPrivate::QSlotObject<void 
> > (Konsole::ViewContainer::*)(QObject*), QtPrivate::List<QObject*>, 
> > void>::impl (which=1, this_=0x1d459f0, r=0x1d05800, a=0x7fff3f64ff70, 
> > ret=0x0) at 
> > /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobject_impl.h:149
> > #21 0x00007f8f3d9f0f95 in QtPrivate::QSlotObjectBase::call (this=0x1d459f0, 
> > r=0x1d05800, a=0x7fff3f64ff70) at 
> > ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
> > #22 0x00007f8f3d9ee147 in QMetaObject::activate (sender=0x1d0d400, 
> > signalOffset=0, local_signal_index=0, argv=0x7fff3f64ff70) at 
> > kernel/qobject.cpp:3668
> > #23 0x00007f8f3d9eda62 in QMetaObject::activate (sender=0x1d0d400, 
> > m=0x7f8f3de8bc20 <QObject::staticMetaObject>, local_signal_index=0, 
> > argv=0x7fff3f64ff70) at kernel/qobject.cpp:3548
> > #24 0x00007f8f3d9f0d73 in QObject::destroyed (this=0x1d0d400, 
> > _t1=0x1d0d400) at .moc/moc_qobject.cpp:202
> > #25 0x00007f8f3ef31932 in QWidget::~QWidget (this=0x1d0d400, 
> > __in_chrg=<optimized out>) at kernel/qwidget.cpp:1460
> > #26 0x00007f8f1c204a83 in Konsole::TerminalDisplay::~TerminalDisplay 
> > (this=0x1d0d400, __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/TerminalDisplay.cpp:416
> > #27 0x00007f8f1c204abc in Konsole::TerminalDisplay::~TerminalDisplay 
> > (this=0x1d0d400, __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/TerminalDisplay.cpp:426
> > #28 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1d06080) 
> > at kernel/qobject.cpp:1935
> > #29 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x1d01b20, 
> > __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
> > #30 0x00007f8f3f06bef0 in QFrame::~QFrame (this=0x1d01b20, 
> > __in_chrg=<optimized out>) at widgets/qframe.cpp:217
> > #31 0x00007f8f3f0db6fc in QStackedWidget::~QStackedWidget (this=0x1d01b20, 
> > __in_chrg=<optimized out>) at widgets/qstackedwidget.cpp:149
> > #32 0x00007f8f3f0db732 in QStackedWidget::~QStackedWidget (this=0x1d01b20, 
> > __in_chrg=<optimized out>) at widgets/qstackedwidget.cpp:151
> > #33 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1d05d20) 
> > at kernel/qobject.cpp:1935
> > #34 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x1856cf0, 
> > __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
> > #35 0x00007f8f3ef31b04 in QWidget::~QWidget (this=0x1856cf0, 
> > __in_chrg=<optimized out>) at kernel/qwidget.cpp:1509
> > #36 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1cf2f40) 
> > at kernel/qobject.cpp:1935
> > #37 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x1cf2ef0, 
> > __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
> > #38 0x00007f8f3f06bef0 in QFrame::~QFrame (this=0x1cf2ef0, 
> > __in_chrg=<optimized out>) at widgets/qframe.cpp:217
> > #39 0x00007f8f3f0d863e in QSplitter::~QSplitter (this=0x1cf2ef0, 
> > __in_chrg=<optimized out>) at widgets/qsplitter.cpp:968
> > #40 0x00007f8f1c229764 in Konsole::ViewSplitter::~ViewSplitter 
> > (this=0x1cf2ef0, __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewSplitter.cpp:39
> > #41 0x00007f8f1c22979c in Konsole::ViewSplitter::~ViewSplitter 
> > (this=0x1cf2ef0, __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewSplitter.cpp:44
> > #42 0x00007f8f43595b15 in KParts::Part::~Part (this=0x1ce80f0, 
> > __vtt_parm=0x7f8f1c6c4490 <VTT for Konsole::Part+16>, __in_chrg=<optimized 
> > out>) at /home/dh/kde/kf5/src/frameworks/kparts/src/part.cpp:65
> > #43 0x00007f8f43597c3e in KParts::ReadOnlyPart::~ReadOnlyPart 
> > (this=0x1ce80f0, __vtt_parm=0x7f8f1c6c4488 <VTT for Konsole::Part+8>, 
> > __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/frameworks/kparts/src/readonlypart.cpp:51
> > #44 0x00007f8f1c4bad24 in Konsole::Part::~Part (this=0x1ce80f0, 
> > __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/Part.cpp:95
> > #45 0x00007f8f1c4bad8c in Konsole::Part::~Part (this=0x1ce80f0, 
> > __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/konsole/src/Part.cpp:98
> > #46 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1626c20) 
> > at kernel/qobject.cpp:1935
> > #47 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x16239a0, 
> > __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
> > #48 0x00007f8f1d7cc6b3 in KateConsole::~KateConsole (this=0x16239a0, 
> > __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:151
> > #49 0x00007f8f1d7cc6fc in KateConsole::~KateConsole (this=0x16239a0, 
> > __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:156
> > #50 0x00007f8f1d7cbd83 in KateKonsolePluginView::~KateKonsolePluginView 
> > (this=0x16237a0, __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:109
> > #51 0x00007f8f1d7cbddc in KateKonsolePluginView::~KateKonsolePluginView 
> > (this=0x16237a0, __in_chrg=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:111
> > #52 0x00007f8f43e75a71 in KatePluginManager::disablePluginGUI 
> > (this=0xe86150, item=0xe620d0, win=0x1247390) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katepluginmanager.cpp:230
> > #53 0x00007f8f43e754bf in KatePluginManager::disableAllPluginsGUI 
> > (this=0xe86150, win=0x1247390) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katepluginmanager.cpp:149
> > #54 0x00007f8f43e6a282 in KateMainWindow::~KateMainWindow (this=0x1247390, 
> > __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katemainwindow.cpp:227
> > #55 0x00007f8f43e6a3f4 in KateMainWindow::~KateMainWindow (this=0x1247390, 
> > __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at 
> > /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katemainwindow.cpp:236
> >

Drat, I get that when I exit from one tab in yakuake now too :/


- Jeremy


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118816/#review60445
-----------------------------------------------------------


On June 18, 2014, 1:24 p.m., Jeremy Whiting wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/118816/
> -----------------------------------------------------------
> 
> (Updated June 18, 2014, 1:24 p.m.)
> 
> 
> Review request for KDE Base Apps and Eike Hein.
> 
> 
> Repository: konsole
> 
> 
> Description
> -------
> 
> When containers are destructed, they emit a signal that the splitter is 
> connected to which removes and unregisters the container from the splitter.
> A crash happens when the splitter is destroyed before the container, so a 
> slot in a deleted splitter is called, tries to unregister the container, and 
> segfaults.
> I added a destructor to ViewSplitter which unregisters all it's containers, 
> this fixes the crash here on closing of a tab in yakuake and on closing a tab 
> in konsole.
> 
> 
> Diffs
> -----
> 
>   src/ViewSplitter.h c1e4552 
>   src/ViewSplitter.cpp bfc727e 
>   src/ViewContainer.cpp 79c24d5 
> 
> Diff: https://git.reviewboard.kde.org/r/118816/diff/
> 
> 
> Testing
> -------
> 
> Manual testing, it seems to work fine.
> 
> 
> Thanks,
> 
> Jeremy Whiting
> 
>

Reply via email to