<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/118816/">https://git.reviewboard.kde.org/r/118816/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I removed the qDebug() line for testing (wouldn't compile otherwise due to missing include). Still crashes with the patch:

Application: <application>Konsole</application> (konsole), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
81      T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f04fec6e900 (LWP 29767))]

Thread 3 (Thread 0x7f04f7bf5700 (LWP 29768)):
#0  0x000000348b6ea9dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x000000348ee09f72 in poll (__timeout=-1, __nfds=1, __fds=0x7f04f7bf4c10) at /usr/include/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x20c9ef0, cond=cond@entry=0x20c9f30, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:414
#3  0x000000348ee0b6bf in xcb_wait_for_event (c=0x20c9ef0) at xcb_in.c:526
#4  0x00007f04f8442375 in QXcbEventReader::run (this=0x20d7f30) at qxcbconnection.cpp:1034
#5  0x00007f0500e7666b in QThreadPrivate::start (arg=0x20d7f30) at thread/qthread_unix.cpp:345
#6  0x000000348c207f33 in start_thread (arg=0x7f04f7bf5700) at pthread_create.c:309
#7  0x000000348b6f4ded in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f04ed31d700 (LWP 29778)):
#0  0x000000348b6ec703 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f050102930b in QProcessManager::run (this=0x20bbce0) at io/qprocess_unix.cpp:272
#2  0x00007f0500e7666b in QThreadPrivate::start (arg=0x20bbce0) at thread/qthread_unix.cpp:345
#3  0x000000348c207f33 in start_thread (arg=0x7f04ed31d700) at pthread_create.c:309
#4  0x000000348b6f4ded in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f04fec6e900 (LWP 29767)):
[KCrash Handler]
#6  0x0000000000000031 in ?? ()
#7  0x00007f05020e21cc in QStackedWidget::indexOf (this=0x2203210, widget=0x2224650) at widgets/qstackedwidget.cpp:261
#8  0x00007f0508035968 in Konsole::TabbedViewContainer::removeViewWidget (this=0x21e7c20, view=0x2224650) at /home/sho/devel/src/kde/applications/konsole/src/ViewContainer.cpp:656
#9  0x00007f050803319e in Konsole::ViewContainer::viewDestroyed (this=0x21e7c20, object=0x2224650) at /home/sho/devel/src/kde/applications/konsole/src/ViewContainer.cpp:167
#10 0x00007f050803954e in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QObject*>, void, void (Konsole::ViewContainer::*)(QObject*)>::call (f=(void (Konsole::ViewContainer::*)(Konsole::ViewContainer * const, QObject *)) 0x7f0508033138 <Konsole::ViewContainer::viewDestroyed(QObject*)>, o=0x21e7c20, arg=0x7ffffe4d6f10) at /home/sho/devel/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:508
#11 0x00007f050803914c in QtPrivate::FunctionPointer<void (Konsole::ViewContainer::*)(QObject*)>::call<QtPrivate::List<QObject*>, void> (f=(void (Konsole::ViewContainer::*)(Konsole::ViewContainer * const, QObject *)) 0x7f0508033138 <Konsole::ViewContainer::viewDestroyed(QObject*)>, o=0x21e7c20, arg=0x7ffffe4d6f10) at /home/sho/devel/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:527
#12 0x00007f05080387db in QtPrivate::QSlotObject<void (Konsole::ViewContainer::*)(QObject*), QtPrivate::List<QObject*>, void>::impl (which=1, this_=0x2312620, r=0x21e7c20, a=0x7ffffe4d6f10, ret=0x0) at /home/sho/devel/src/qt5/qtbase/src/corelib/kernel/qobject_impl.h:151
#13 0x00007f05010dad15 in QtPrivate::QSlotObjectBase::call (this=0x2312620, r=0x21e7c20, a=0x7ffffe4d6f10) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
#14 0x00007f05010d7ec7 in QMetaObject::activate (sender=0x2224650, signalOffset=0, local_signal_index=0, argv=0x7ffffe4d6f10) at kernel/qobject.cpp:3666
#15 0x00007f05010d77e2 in QMetaObject::activate (sender=0x2224650, m=0x7f0501575c20 <QObject::staticMetaObject>, local_signal_index=0, argv=0x7ffffe4d6f10) at kernel/qobject.cpp:3546
#16 0x00007f05010daaf3 in QObject::destroyed (this=0x2224650, _t1=0x2224650) at .moc/moc_qobject.cpp:205
#17 0x00007f0501f35906 in QWidget::~QWidget (this=0x2224650, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1461
#18 0x00007f0508023d07 in Konsole::TerminalDisplay::~TerminalDisplay (this=0x2224650, __in_chrg=<optimized out>) at /home/sho/devel/src/kde/applications/konsole/src/TerminalDisplay.cpp:416
#19 0x00007f0508023d40 in Konsole::TerminalDisplay::~TerminalDisplay (this=0x2224650, __in_chrg=<optimized out>) at /home/sho/devel/src/kde/applications/konsole/src/TerminalDisplay.cpp:426
#20 0x00007f05010d2b38 in QObjectPrivate::deleteChildren (this=0x21e2590) at kernel/qobject.cpp:1935
#21 0x00007f0501f359c1 in QWidget::~QWidget (this=0x2203210, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1490
#22 0x00007f05020721fc in QFrame::~QFrame (this=0x2203210, __in_chrg=<optimized out>) at widgets/qframe.cpp:217
#23 0x00007f05020e1f6c in QStackedWidget::~QStackedWidget (this=0x2203210, __in_chrg=<optimized out>) at widgets/qstackedwidget.cpp:149
#24 0x00007f05020e1fa2 in QStackedWidget::~QStackedWidget (this=0x2203210, __in_chrg=<optimized out>) at widgets/qstackedwidget.cpp:151
#25 0x00007f05010d2b38 in QObjectPrivate::deleteChildren (this=0x21e76d0) at kernel/qobject.cpp:1935
#26 0x00007f0501f359c1 in QWidget::~QWidget (this=0x2208d40, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1490
#27 0x00007f0501f35ad8 in QWidget::~QWidget (this=0x2208d40, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1510
#28 0x00007f05010d2b38 in QObjectPrivate::deleteChildren (this=0x21cbc40) at kernel/qobject.cpp:1935
#29 0x00007f0501f359c1 in QWidget::~QWidget (this=0x21cbbf0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1490
#30 0x00007f05020721fc in QFrame::~QFrame (this=0x21cbbf0, __in_chrg=<optimized out>) at widgets/qframe.cpp:217
#31 0x00007f05020deeae in QSplitter::~QSplitter (this=0x21cbbf0, __in_chrg=<optimized out>) at widgets/qsplitter.cpp:968
#32 0x00007f0508048904 in Konsole::ViewSplitter::~ViewSplitter (this=0x21cbbf0, __in_chrg=<optimized out>) at /home/sho/devel/src/kde/applications/konsole/src/ViewSplitter.cpp:39
#33 0x00007f050804893c in Konsole::ViewSplitter::~ViewSplitter (this=0x21cbbf0, __in_chrg=<optimized out>) at /home/sho/devel/src/kde/applications/konsole/src/ViewSplitter.cpp:44
#34 0x00007f05010d2b38 in QObjectPrivate::deleteChildren (this=0x21d9ba0) at kernel/qobject.cpp:1935
#35 0x00007f0501f359c1 in QWidget::~QWidget (this=0x21d7630, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1490
#36 0x00007f0501f35ad8 in QWidget::~QWidget (this=0x21d7630, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1510
#37 0x00007f05010d2b38 in QObjectPrivate::deleteChildren (this=0x2172760) at kernel/qobject.cpp:1935
#38 0x00007f0501f359c1 in QWidget::~QWidget (this=0x21bae00, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1490
#39 0x00007f050208e108 in QMainWindow::~QMainWindow (this=0x21bae00, __in_chrg=<optimized out>) at widgets/qmainwindow.cpp:387
#40 0x00007f050640526e in KMainWindow::~KMainWindow (this=0x21bae00, __in_chrg=<optimized out>) at /home/sho/devel/src/frameworks/kxmlgui/src/kmainwindow.cpp:331
#41 0x00007f0506444bc6 in KXmlGuiWindow::~KXmlGuiWindow (this=0x21bae00, __vtt_parm=0x7f050850f488 <VTT for Konsole::MainWindow+8>, __in_chrg=<optimized out>) at /home/sho/devel/src/frameworks/kxmlgui/src/kxmlguiwindow.cpp:110
#42 0x00007f05082fffe2 in Konsole::MainWindow::~MainWindow (this=0x21bae00, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/sho/devel/build/kde/applications/konsole/src/../../../../../src/kde/applications/konsole/src/MainWindow.h:57
#43 0x00007f0508300048 in Konsole::MainWindow::~MainWindow (this=0x21bae00, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/sho/devel/build/kde/applications/konsole/src/../../../../../src/kde/applications/konsole/src/MainWindow.h:57
#44 0x00007f05010d9a6e in qDeleteInEventHandler (o=0x21bae00) at kernel/qobject.cpp:4345
#45 0x00007f05010d15a6 in QObject::event (this=0x21bae00, e=0x247aba0) at kernel/qobject.cpp:1232
#46 0x00007f0501f47800 in QWidget::event (this=0x21bae00, event=0x247aba0) at kernel/qwidget.cpp:8365
#47 0x00007f050209023f in QMainWindow::event (this=0x21bae00, event=0x247aba0) at widgets/qmainwindow.cpp:1496
#48 0x00007f05064075e3 in KMainWindow::event (this=0x21bae00, ev=0x247aba0) at /home/sho/devel/src/frameworks/kxmlgui/src/kmainwindow.cpp:819
#49 0x00007f0506444dbb in KXmlGuiWindow::event (this=0x21bae00, ev=0x247aba0) at /home/sho/devel/src/frameworks/kxmlgui/src/kxmlguiwindow.cpp:118
#50 0x00007f0501efc7be in QApplicationPrivate::notify_helper (this=0x20be2f0, receiver=0x21bae00, e=0x247aba0) at kernel/qapplication.cpp:3522
#51 0x00007f0501efc628 in QApplication::notify (this=0x7ffffe4d8c50, receiver=0x21bae00, e=0x247aba0) at kernel/qapplication.cpp:3487
#52 0x00007f0501095a52 in QCoreApplication::notifyInternal (this=0x7ffffe4d8c50, receiver=0x21bae00, event=0x247aba0) at kernel/qcoreapplication.cpp:935
#53 0x00007f050109973b in QCoreApplication::sendEvent (receiver=0x21bae00, event=0x247aba0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#54 0x00007f0501096daf in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x2095550) at kernel/qcoreapplication.cpp:1539
#55 0x00007f0501096760 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1397
#56 0x00007f050110ce98 in postEventSourceDispatch (s=0x20df240) at kernel/qeventdispatcher_glib.cpp:279
#57 0x000000348d6492a6 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#58 0x000000348d649628 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#59 0x000000348d6496dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#60 0x00007f050110d639 in QEventDispatcherGlib::processEvents (this=0x2100e50, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#61 0x00007f04f849c1ba in QPAEventDispatcherGlib::processEvents (this=0x2100e50, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#62 0x00007f0501092706 in QEventLoop::processEvents (this=0x7ffffe4d8b60, flags=...) at kernel/qeventloop.cpp:136
#63 0x00007f05010929e9 in QEventLoop::exec (this=0x7ffffe4d8b60, flags=...) at kernel/qeventloop.cpp:212
#64 0x00007f050109613b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#65 0x00007f0501674496 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1446
#66 0x00007f0501ef977d in QApplication::exec () at kernel/qapplication.cpp:2767
#67 0x00007f05082f6aaf in kdemain (argc=1, argv=0x7ffffe4d8ed8) at /home/sho/devel/src/kde/applications/konsole/src/main.cpp:92
#68 0x0000000000400bf2 in main (argc=1, argv=0x7ffffe4d8ed8) at /home/sho/devel/build/kde/applications/konsole/src/konsole_dummy.cpp:3
</pre>
 <br />









<p>- Eike Hein</p>


<br />
<p>On June 18th, 2014, 5:50 p.m. UTC, Jeremy Whiting wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDE Base Apps and Eike Hein.</div>
<div>By Jeremy Whiting.</div>


<p style="color: grey;"><i>Updated June 18, 2014, 5:50 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
konsole
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Manual testing, it seems to work fine.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>src/ViewSplitter.h <span style="color: grey">(c1e4552)</span></li>

 <li>src/ViewSplitter.cpp <span style="color: grey">(bfc727e)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/118816/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>