Bug 65693

Summary: kdevelop crashed on exit....
Product: [Applications] kdevelop Reporter: Mathieu Jobin <opensource>
Component: UI: IDEAlAssignee: KDevelop Developers <kdevelop-devel>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Mathieu Jobin 2003-10-08 10:48:24 UTC
Version:           unknown (using KDE 3.1.92 (alpha2, CVS >= 20030921), compiled sources)
Compiler:          gcc version 3.2.2 (Mandrake Linux 9.1 3.2.2-3mdk)
OS:          Linux (i686) release 2.4.21-0.13mdk

I just quit kdevelop (latest CVS)
and it crashed.

[New Thread 16384 (LWP 10218)]
[New Thread 32769 (LWP 10273)]
0x418506ba in waitpid () from /lib/i686/libpthread.so.0
#0  0x418506ba in waitpid () from /lib/i686/libpthread.so.0
#1  0x40d13237 in KCrash::defaultCrashHandler(int) ()
   from /usr/local/kde/lib/libkdecore.so.4
#2  0x4184f5ce in __pthread_sighandler () from /lib/i686/libpthread.so.0
#3  0x419bc3b8 in __libc_sigaction () from /lib/i686/libc.so.6
#4  0x41176696 in ~QWidget (this=0x81fb5a8) at kernel/qwidget.cpp:922
#5  0x4127d1c7 in ~QTabWidget (this=0x81fb5a8) at widgets/qtabwidget.cpp:243
#6  0x40b8a346 in KTabWidget::~KTabWidget() ()
   from /usr/local/kde/lib/libkdeui.so.4
#7  0x41176696 in ~QWidget (this=0x81e4c20) at kernel/qwidget.cpp:922
#8  0x08094c8d in KTabZoomWidget::~KTabZoomWidget() ()
#9  0x41176696 in ~QWidget (this=0x81b0840) at kernel/qwidget.cpp:922
#10 0x08094c8d in KTabZoomWidget::~KTabZoomWidget() ()
#11 0x41176696 in ~QWidget (this=0x81f9108) at kernel/qwidget.cpp:922
#12 0x08094c8d in KTabZoomWidget::~KTabZoomWidget() ()
#13 0x41176696 in ~QWidget (this=0x81c81e8) at kernel/qwidget.cpp:922
#14 0x41240dda in ~QMainWindow (this=0x81c81e8) at widgets/qmainwindow.cpp:918
#15 0x40ab2764 in KMainWindow::~KMainWindow() ()
   from /usr/local/kde/lib/libkdeui.so.4
#16 0x406153ea in KParts::MainWindow::~MainWindow() ()
   from /usr/local/kde/lib/libkparts.so.2
#17 0x08080da1 in MainWindowIDEAl::~MainWindowIDEAl() ()
#18 0x41143030 in QObject::event(QEvent*) (this=0x81c81e8, e=0x868f790)
    at kernel/qobject.cpp:750
#19 0x4117c81d in QWidget::event(QEvent*) (this=0x81c81e8, e=0x868f790)
    at kernel/qwidget.cpp:4401
#20 0x41242cbb in QMainWindow::event(QEvent*) (this=0x81c81e8, e=0x868f790)
    at widgets/qmainwindow.cpp:1669
#21 0x410e2d21 in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbffff6f0, receiver=0x81c81e8, e=0x868f790)
    at kernel/qapplication.cpp:2582
#22 0x410e2951 in QApplication::notify(QObject*, QEvent*) (this=0xbffff6f0, 
    receiver=0x81c81e8, e=0x868f790) at kernel/qapplication.cpp:2470
#23 0x40c76446 in KApplication::notify(QObject*, QEvent*) ()
   from /usr/local/kde/lib/libkdecore.so.4
#24 0x4107a00d in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0x81c81e8, event=0x868f790) at kernel/qapplication.h:490
#25 0x410e3c18 in QApplication::sendPostedEvents(QObject*, int) (receiver=0x0, 
    event_type=52) at kernel/qapplication.cpp:3204
#26 0x410f86e5 in QEventLoop::enterLoop() (this=0x8150e48)
    at kernel/qeventloop.cpp:213
#27 0x410f853a in QEventLoop::exec() (this=0x8150e48)
    at kernel/qeventloop.cpp:145
#28 0x410e2ea5 in QApplication::exec() (this=0xbffff6f0)
    at kernel/qapplication.cpp:2705
#29 0x08067869 in main ()
#30 0x419a97f7 in __libc_start_main () from /lib/i686/libc.so.6
Comment 1 Thiago Macieira 2003-10-08 17:50:59 UTC
This looks like either a double deletion or dangling pointer. Can you run valgrind on the 
process and make it crash? 
Comment 2 Sascha Cunz 2003-10-28 22:19:35 UTC
[New Thread 1024 (LWP 5248)]
0x41e258c9 in wait4 () from /lib/libc.so.6
#0  0x41e258c9 in wait4 () from /lib/libc.so.6
#1  0x41ea0c90 in __DTOR_END__ () from /lib/libc.so.6
#2  0x41c80a93 in waitpid () from /lib/libpthread.so.0
#3  0x40de9337 in KCrash::defaultCrashHandler(int) (sig=11) at kcrash.cpp:242
#4  0x41c7e12b in pthread_sighandler () from /lib/libpthread.so.0
#5  <signal handler called>
#6  0x40c59347 in ~KTabBar (this=0xbfffec5c)
    at /usr/lib/qt3/include/qshared.h:50
#7  0x4125a030 in ~QWidget (this=0x8182ff8) at kernel/qwidget.cpp:922
#8  0x41387e5b in ~QTabWidget (this=0x8182ff8) at widgets/qtabwidget.cpp:243
#9  0x40c5b936 in ~KTabWidget (this=0x8182ff8) at ktabwidget.cpp:46
#10 0x4125a030 in ~QWidget (this=0x8176678) at kernel/qwidget.cpp:922
#11 0x08098f4d in ~KTabZoomWidget (this=0x8176678) at ktabzoomwidget.cpp:101
#12 0x4125a030 in ~QWidget (this=0x8172d20) at kernel/qwidget.cpp:922
#13 0x08098f4d in ~KTabZoomWidget (this=0x8172d20) at ktabzoomwidget.cpp:101
#14 0x4125a030 in ~QWidget (this=0x81676d8) at kernel/qwidget.cpp:922
#15 0x08098f4d in ~KTabZoomWidget (this=0x81676d8) at ktabzoomwidget.cpp:101
#16 0x4125a030 in ~QWidget (this=0x815b040) at kernel/qwidget.cpp:922
#17 0x41344ba8 in ~QMainWindow (this=0x815b040) at widgets/qmainwindow.cpp:918
#18 0x40b7cbb5 in ~KMainWindow (this=0x815b040, __vtt_parm=0x0)
    at kmainwindow.cpp:315
#19 0x406c9b4b in ~MainWindow (this=0x815b040, __vtt_parm=0x80abbe4)
    at mainwindow.cpp:84
...

seems to be exactly the same - and on my system (kde3.2cvs; kdevelop-cvs both last week ) i can reproduce it 100%
As soon as i use dotNET Style, kdevelop produces this crash at exit.
Switching to another style, kdevelop does not crash at exit.

i came to the idea of style-switching, because of this valgrind-output:
==5262== Conditional jump or move depends on uninitialised value(s)
==5262==    at 0x416D4C89: QComboBox::listBox() const (widgets/qcombobox.cpp:21
12)
==5262==    by 0x480DA2CC: dotNETstyle::drawComplexControl(QStyle::ComplexContr
ol, QPainter*, QWidget const*, QRect const&, QColorGroup const&, unsigned, unsi
gned, unsigned, QStyleOption const&) const (dotnet.cpp:1436)
==5262==    by 0x4BFB6604: QComboView::paintEvent(QPaintEvent*) (/usr/lib/qt3/i
nclude/qwidget.h:748)
==5262==    by 0x416590A0: QWidget::event(QEvent*) (kernel/qwidget.cpp:4529)
( but i guess, this is another issue, if it is one )

the crash itself is reported by valgrind:
==5262==
==5262== Invalid read of size 4
==5262==    at 0x41051341: KTabBar::~KTabBar() (/usr/lib/qt3/include/qshared.h:50)
==5262==    by 0x4165202F: QWidget::~QWidget() (kernel/qwidget.cpp:922)
==5262==    by 0x4177FE5A: QTabWidget::~QTabWidget() (widgets/qtabwidget.cpp:243)
==5262==    by 0x41053935: KTabWidget::~KTabWidget() (ktabwidget.cpp:46)
==5262==    Address 0x46CB35E4 is 8 bytes after a block of size 136 alloc'd
==5262==    at 0x40213CB0: __builtin_new (vg_replace_malloc.c:172)
==5262==    by 0x40213D08: operator new(unsigned) (vg_replace_malloc.c:185)
==5262==    by 0x809ECDC: KTabWidget::KTabWidget(QWidget*, char const*) (ktabwi
dget.cpp:23)
==5262==    by 0x8083A8B: MainWindowIDEAl::createFramework() (mainwindowideal.c
pp:240)
but i don't get any more information out of this.
Comment 3 Mathieu Jobin 2003-10-29 01:18:26 UTC
I'm using keramik
Comment 4 John Birch 2003-10-29 08:15:05 UTC
KDE 3.1.92 kdelibs/kdeui contains ktabwidget.cpp .h and kdevelop/lib/widgets contain ktabwidget.cpp .h but these are different implementsation of the same class, which causes the crash in the destructor.

Remove the kdevelop/lib/widgets version and recompile from scratch.  If you look at kdevelop-devel mailing list you'll find a patch that fixes this for >=kde 3.1.90 but it doesn't work for kde < 3.1.90 release :(

I think there are other issues with headers and the compat/widgets library as well.

This really needs a fix but I have no time. Could someone please please please look into this problem.

I mailed a second patch for half of the problems I found that should work for kde > 3.1.90 but nobody has tested on those versione so I cannot commit that. (The second patch doesn't fix this problem though)

See thread "class libs/widget/KTabBar conflicts with class kdelibs/kdeui/KTabBar" 12/Oct/03
Comment 5 Amilcar do Carmo Lucas 2003-11-01 18:18:43 UTC

*** This bug has been marked as a duplicate of 61604 ***
Comment 6 Mathieu Jobin 2003-11-08 09:44:27 UTC
Using CVS from yesterday ....
[New Thread 16384 (LWP 6808)]
[New Thread 32769 (LWP 6855)]
0x41a946ba in waitpid () from /lib/i686/libpthread.so.0
#0  0x41a946ba in waitpid () from /lib/i686/libpthread.so.0
#1  0x40f330bd in KCrash::defaultCrashHandler(int) (sig=11) at kcrash.cpp:246
#2  0x41a935ce in __pthread_sighandler () from /lib/i686/libpthread.so.0
#3  0x41c003b8 in __libc_sigaction () from /lib/i686/libc.so.6
#4  0x40d794f6 in ~QMap (this=0x81e2938) at /usr/local/qt/include/qmap.h:643
#5  0x40d772a6 in ~KTabBar (this=0x81e28a8) at ktabbar.cpp:59
#6  0x413ba696 in ~QWidget (this=0x81da4f8) at kernel/qwidget.cpp:922
#7  0x414c11c7 in ~QTabWidget (this=0x81da4f8) at widgets/qtabwidget.cpp:243
#8  0x080aa236 in ~KDevTabWidget (this=0x81da4f8) at kdevtabwidget.moc:166
#9  0x413ba696 in ~QWidget (this=0x819dcb8) at kernel/qwidget.cpp:922
#10 0x080a225f in ~KTabZoomWidget (this=0x819dcb8) at ktabzoomwidget.cpp:101
#11 0x413ba696 in ~QWidget (this=0x81a2db8) at kernel/qwidget.cpp:922
#12 0x080a225f in ~KTabZoomWidget (this=0x81a2db8) at ktabzoomwidget.cpp:101
#13 0x413ba696 in ~QWidget (this=0x81bcca8) at kernel/qwidget.cpp:922
#14 0x080a225f in ~KTabZoomWidget (this=0x81bcca8) at ktabzoomwidget.cpp:101
#15 0x413ba696 in ~QWidget (this=0x81c1d78) at kernel/qwidget.cpp:922
#16 0x41484dda in ~QMainWindow (this=0x81c1d78) at widgets/qmainwindow.cpp:918
#17 0x40c9716d in ~KMainWindow (this=0x81c1d78, __vtt_parm=0x80b6da8)
    at kmainwindow.cpp:315
#18 0x407aecc7 in ~MainWindow (this=0x81c1d78, __vtt_parm=0x80b6da4)
    at mainwindow.cpp:84
#19 0x0808ac71 in ~MainWindowIDEAl (this=0x81c1d78) at mainwindowideal.cpp:194
#20 0x41387030 in QObject::event(QEvent*) (this=0x81c1d78, e=0x82878c8)
    at kernel/qobject.cpp:750
#21 0x413c081d in QWidget::event(QEvent*) (this=0x81c1d78, e=0x82878c8)
    at kernel/qwidget.cpp:4401
#22 0x41486cbb in QMainWindow::event(QEvent*) (this=0x81c1d78, e=0x82878c8)
    at widgets/qmainwindow.cpp:1669
#23 0x41326d21 in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbffff6f0, receiver=0x81c1d78, e=0x82878c8)
    at kernel/qapplication.cpp:2582
#24 0x41326951 in QApplication::notify(QObject*, QEvent*) (this=0xbffff6f0, 
    receiver=0x81c1d78, e=0x82878c8) at kernel/qapplication.cpp:2470
#25 0x40ea4588 in KApplication::notify(QObject*, QEvent*) (this=0xbffff6f0, 
    receiver=0x81c1d78, event=0x82878c8) at kapplication.cpp:509
#26 0x4016b1c3 in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0x81c1d78, event=0x82878c8)
    at /usr/local/qt/include/qapplication.h:490
#27 0x41327c18 in QApplication::sendPostedEvents(QObject*, int) (receiver=0x0, 
    event_type=52) at kernel/qapplication.cpp:3204
#28 0x4133c6e5 in QEventLoop::enterLoop() (this=0x815f958)
    at kernel/qeventloop.cpp:213
#29 0x4133c53a in QEventLoop::exec() (this=0x815f958)
    at kernel/qeventloop.cpp:145
#30 0x41326ea5 in QApplication::exec() (this=0xbffff6f0)
    at kernel/qapplication.cpp:2705
#31 0x0806cef3 in main (argc=1, argv=0xbffff864) at main.cpp:128
#32 0x41bed7f7 in __libc_start_main () from /lib/i686/libc.so.6