Bug 263405

Summary: Kile crashed when typing "exit" on embedded konsole
Product: [Applications] kile Reporter: Nikos Papas <linuxfever>
Component: generalAssignee: Michel Ludwig <michel.ludwig>
Status: RESOLVED FIXED    
Severity: crash CC: felix
Priority: NOR    
Version: 2.1b5   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:

Description Nikos Papas 2011-01-17 12:22:24 UTC
Version:           2.1b5 (using KDE 4.5.3) 
OS:                Linux

Open Kile, go to the embedded terminal on the bottom pane, and type "exit". Kile crashes everytime. 

Reproducible: Always
Comment 1 Nikos Papas 2011-01-17 12:22:49 UTC
This is the backtrace:

Application: Kile (kile), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f1eb7e7a760 (LWP 10983))]

Thread 2 (Thread 0x7f1ea0cde700 (LWP 10984)):
#0  0x00007f1eb244bf93 in poll () from /lib/libc.so.6
#1  0x00007f1eae80a4a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f1eae80a8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f1eb34d61d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007f1eb34a8dd2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007f1eb34a91bc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007f1eb33b436d in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007f1eb3488b48 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007f1eb33b72ee in ?? () from /usr/lib/libQtCore.so.4
#9  0x00007f1eb31259ca in start_thread () from /lib/libpthread.so.0
#10 0x00007f1eb245870d in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f1eb7e7a760 (LWP 10983)):
[KCrash Handler]
#6  0x0000000000000000 in ?? ()
#7  0x000000000053489b in KileWidget::Konsole::slotDestroyed (this=0x2bf5330) at /home/giorgos/.kile-install/kile-2.1b5/src/widgets/konsolewidget.cpp:136
#8  0x00000000005349a6 in KileWidget::Konsole::qt_metacall (this=0x2bf5330, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff985f9280)
    at /home/giorgos/.kile-install/build/src/konsolewidget.moc:79
#9  0x00007f1eb34c1da7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#10 0x00007f1eb34c22ef in QObject::destroyed(QObject*) () from /usr/lib/libQtCore.so.4
#11 0x00007f1eb34c3257 in QObject::~QObject() () from /usr/lib/libQtCore.so.4
#12 0x00007f1eb69caaf2 in KParts::Part::~Part() () from /usr/lib/libkparts.so.4
#13 0x00007f1ea02d9cd7 in ?? () from /usr/lib/kde4/libkonsolepart.so
#14 0x00007f1eb34bbea8 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#15 0x00007f1eb3e7b6ec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x00007f1eb3e811dd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007f1eb4e33926 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#18 0x00007f1eb34aa0ac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#19 0x00007f1eb34acfd2 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#20 0x00007f1eb34d6643 in ?? () from /usr/lib/libQtCore.so.4
#21 0x00007f1eae8068c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#22 0x00007f1eae80a748 in ?? () from /lib/libglib-2.0.so.0
#23 0x00007f1eae80a8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#24 0x00007f1eb34d6183 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#25 0x00007f1eb3f2d97e in ?? () from /usr/lib/libQtGui.so.4
#26 0x00007f1eb34a8dd2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#27 0x00007f1eb34a91bc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#28 0x00007f1eb34ad26b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#29 0x00000000004c5b18 in main (argc=<value optimized out>, argv=<value optimized out>) at /home/giorgos/.kile-install/kile-2.1b5/src/main.cpp:166
Comment 2 Michel Ludwig 2011-01-17 21:09:21 UTC
commit 9ec872000a382fa06e670f60ef7d20f6c38d4014
branch master
Author: Michel Ludwig <michel.ludwig@kdemail.net>
Date:   Mon Jan 17 20:06:08 2011 +0000

    Don't remove the Konsole widget from the layout when it has been destroyed already.
    This fixes a crash.
    
    BUG: 263405

diff --git a/src/widgets/konsolewidget.cpp b/src/widgets/konsolewidget.cpp
index 1b5394a..6f09fdb 100644
--- a/src/widgets/konsolewidget.cpp
+++ b/src/widgets/konsolewidget.cpp
@@ -2,7 +2,7 @@
     begin                : Mon Dec 22 2003
     copyright            : (C) 2001 - 2003 by Brachet Pascal
                                2003 by Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)
-                               2007-2010 by Michel Ludwig (michel.ludwig@kdemail.net)
+                               2007-2011 by Michel Ludwig (michel.ludwig@kdemail.net)
  ***************************************************************************************************/
 
 /***************************************************************************
@@ -133,7 +133,8 @@ namespace KileWidget
 
 	void Konsole::slotDestroyed ()
 	{
-		layout()->removeWidget(m_part->widget());
+		// there is no need to remove the widget from the layout as this is done
+		// automatically when the widget is destroyed
 		m_part = NULL;
 		m_term = NULL;
 		spawn();
Comment 3 Nikos Papas 2011-01-17 22:24:12 UTC
So, is the above something I can do to fix it? Or should I wait for the next kile release?
Comment 4 Michel Ludwig 2011-01-17 22:26:58 UTC
If you want to use the fix, you can compile the latest code from Git:

  http://kile.sourceforge.net/developers.php#repository
Comment 5 Rex Dieter 2011-03-21 12:59:20 UTC
*** Bug 268671 has been marked as a duplicate of this bug. ***