Bug 62698 - Crash when closing a project
Summary: Crash when closing a project
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (show other bugs)
Version: git master
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: KDevelop Developers
URL:
Keywords:
: 62407 62929 63051 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-08-15 03:03 UTC by Chris Thompson
Modified: 2003-08-28 10:58 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Thompson 2003-08-15 03:03:36 UTC
Version:           3.0a5 latest CVS (using KDE KDE 3.1.2)
Installed from:    Gentoo Packages
OS:          Linux

I start up KDevelop (Gideon 3.0a5, latest cvs).  It automatically opens my previous project.  I go to the project menu and select Close.  KDevelop crashes.  The same thing happens when I try to open a different project, presumably because it has to first close the current project.

This is happening with 100% reproducability.  I updated from cvs today, normally do so every couple of days.  I had never seen this before.

Here is my backtrace from gdb:

#0  0x00000000 in ?? ()
#1  0x409a3057 in KXMLGUI::ContainerNode::unplugActions(KXMLGUI::BuildState&)
    () from /usr/kde/3.1/lib/libkdeui.so.4
#2  0x409a2aac in KXMLGUI::ContainerNode::destruct(QDomElement, KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4
#3  0x409a2cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4
#4  0x409a2a9d in KXMLGUI::ContainerNode::destruct(QDomElement, KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4
#5  0x409a2cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4
#6  0x409a2a9d in KXMLGUI::ContainerNode::destruct(QDomElement, KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4
#7  0x4099e737 in KXMLGUIFactory::removeClient(KXMLGUIClient*) ()
   from /usr/kde/3.1/lib/libkdeui.so.4
#8  0x0809fef1 in PluginController::removePart(KXMLGUIClient*) (
    this=0x81ee150, part=0x8b6d230) at plugincontroller.cpp:283
#9  0x0809c2ee in ProjectManager::unloadLanguageSupport() (this=0x81eb330)
    at projectmanager.cpp:466
#10 0x0809aff6 in ProjectManager::closeProject() (this=0x81eb330)
    at projectmanager.cpp:277
#11 0x0809d545 in ProjectManager::qt_invoke(int, QUObject*) (this=0x81eb330,
    _id=4, _o=0xbfffea00) at projectmanager.moc:109


Here is what KCrash grabs, probably not useful:
[New Thread 16384 (LWP 16109)]
[New Thread 32769 (LWP 16115)]
[New Thread 16386 (LWP 16116)]
0x41425f88 in waitpid () from /lib/libpthread.so.0
#0  0x41425f88 in waitpid () from /lib/libpthread.so.0
#1  0x40b48a3e in KCrash::defaultCrashHandler(int) ()
   from /usr/kde/3.1/lib/libkdecore.so.4
#2  0x41424dfa in __pthread_sighandler () from /lib/libpthread.so.0
#3  <signal handler called>

I have tried recompiling KDevelop (make clean, reconfigure, remake) both in release mode and in debug mode.  The same problem occurs both times.
Comment 1 Chris Thompson 2003-08-15 04:59:25 UTC
It now looks likely my problem is from a corrupted .kdevelop file, I am investigating 
further.  There's definitely a bug in KDevelop somewhere but it may not be quite where I 
thought it was. 
Comment 2 Peter Antonius 2003-08-15 18:43:14 UTC
Hi I have the same problem with the latest gideon cvs. I'm running kde 3.1.1 (std. 
Suse 8.2) 
 
KCrash grap 
 
[New Thread 16384 (LWP 23312)] 
[New Thread 32769 (LWP 23324)] 
[New Thread 16386 (LWP 23325)] 
0x4137d3ba in waitpid () from /lib/libpthread.so.0 
#0  0x4137d3ba in waitpid () from /lib/libpthread.so.0 
#1  0x40a96c89 in KCrash::defaultCrashHandler(int) () 
   from /opt/kde3/lib/libkdecore.so.4 
#2  0x4137c1ec in __pthread_sighandler () from /lib/libpthread.so.0 
#3  <signal handler called> 
#4  0x08a908bb in ?? () 
#5  0x408fa6c4 in KXMLGUI::ContainerNode::unplugActions(KXMLGUI::BuildState&) 
    () from /opt/kde3/lib/libkdeui.so.4 
#6  0x408fa18c in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /opt/kde3/lib/libkdeui.so.4 
#7  0x408fa38a in KXMLGUI::ContainerNode::destructChildren(QDomElement 
const&, KXMLGUI::BuildState&) () from /opt/kde3/lib/libkdeui.so.4 
#8  0x408fa180 in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /opt/kde3/lib/libkdeui.so.4 
#9  0x408fa38a in KXMLGUI::ContainerNode::destructChildren(QDomElement 
const&, KXMLGUI::BuildState&) () from /opt/kde3/lib/libkdeui.so.4 
#10 0x408fa180 in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /opt/kde3/lib/libkdeui.so.4 
#11 0x408f74cd in KXMLGUIFactory::removeClient(KXMLGUIClient*) () 
   from /opt/kde3/lib/libkdeui.so.4 
#12 0x080890d1 in ProjectManager::unloadLanguageSupport() () 
#13 0x080878ff in ProjectManager::closeProject() () 
#14 0x0807ec33 in Core::queryClose() () 
#15 0x080910fc in MainWindowIDEAl::queryClose() () 
#16 0x4088f203 in KMainWindow::closeEvent(QCloseEvent*) ( 
Comment 3 Chris Thompson 2003-08-15 19:36:16 UTC
Well, I modified the plugincontroller.cpp file, specifically the PluginController::removePart 
method.  This now looks like: 
 
void PluginController::removePart(KXMLGUIClient *part) 
{ 
  kdDebug(62698) << "PluginController::removePart(KXMLGUIClient *part)" << endl; 
  kdDebug(62698) << TopLevel::getInstance() << endl; 
  kdDebug(62698) << TopLevel::getInstance()->main() << endl; 
  kdDebug(62698) << TopLevel::getInstance()->main()->guiFactory() << endl; 
  kdDebug(62698) << part << " if ( ! part ) ? " << (! part) << endl; 
 
  try { 
    TopLevel::getInstance()->main()->guiFactory()->removeClient(part); 
  } catch (...) { 
    kdDebug(62698) << "Caught an exception" << endl; 
  } 
} 
 
(I didn't know what to put in for the number for kdDebug).  I still get the crash at the 
same location, the bit that actually removes the client.  I'm attaching another stack trace 
along with the output in gdb leading up to that point. 
 
It looks like my reverting to a previous build of KDevelop did _not_ show the error, it 
instead crashed in a different location due to changes in cppsupportpart.  I therefore 
cannot say exactly when this particular bug was introduced but it must have been fairly 
recently.  I also cannot say if Peter's confirmation is actually for the same bug, his stack 
trace looks different than mine. 
 
I'm totally lost looking at the KDevelop source code so I am not planning on 
investigating this problem further but if someone else wants to, I can run tests, etc. etc.  
I'll also note if a future retrieval from CVS fixes my problem. 
 
qeditor: CppSupportPart::activePartChanged() 
kdevelop (cpp support): CppCodeCompletion::slotActivePartChanged() 
kdevelop (cpp support): BackgroundParser::removeAllFiles() 
kdevelop (debugger): GDBController::slotStopDebugger() called 
kdevelop (debugger): Disassemble widget active: false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8a9ccd0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x86556e0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8b74c90 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8b74de0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8a39a48 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x87fe2c8 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x86442d0 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x898dcf8 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x874a008 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8618f68 if ( ! part ) ? false 
kdevelop (cpp support): DistpartPart::~DistpartPart() 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x81806f8 if ( ! part ) ? false 
gideon: PluginController::removePart(KXMLGUIClient *part) 
gideon: 0x819f2a4 
gideon: [MainWindowIDEAl pointer (0x819f1f0) to widget gideon-mainwindow#1, 
geometry=1591x1114+0+0] 
gideon: 0x81aff78 
gideon: 0x8b95478 if ( ! part ) ? false 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 16384 (LWP 17515)] 
0x08b0aecd in ?? () 
(gdb) bt 
#0  0x08b0aecd in ?? () 
#1  0x409a2aac in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#2  0x409a2cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#3  0x409a2a9d in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#4  0x409a2cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#5  0x409a2a9d in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#6  0x4099e737 in KXMLGUIFactory::removeClient(KXMLGUIClient*) () 
   from /usr/kde/3.1/lib/libkdeui.so.4 
#7  0x080a00dd in PluginController::removePart(KXMLGUIClient*) ( 
    this=0x81ee388, part=0x8b95478) at plugincontroller.cpp:290 
#8  0x0809c32e in ProjectManager::unloadLanguageSupport() (this=0x81eb568) 
    at projectmanager.cpp:466 
#9  0x0809b036 in ProjectManager::closeProject() (this=0x81eb568) 
    at projectmanager.cpp:277 
#10 0x0809d585 in ProjectManager::qt_invoke(int, QUObject*) (this=0x81eb568, 
    _id=4, _o=0xbfffea00) at projectmanager.moc:109 
#11 0x40ed2639 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/qt/3/lib/libqt-mt.so.3 
 
Comment 4 Hendrik Kueck 2003-08-15 22:16:11 UTC
Same problem here. 
I am using the latest CVS version under Redhat 9.

I just did the following:
Wiped my source directory, wiped the installation directory
Did a clean checkout of the current CVS version (15.08.2003)
run configure with the following flags --prefix=path/to/local/directory
--without-arts

after installing, I completely removed (after backing it up of course) my .kde
directory to get rid of all configuration files.
I still have the same problem.

I suspect that it might be related to the --prefix install. Is everybody else
who experiences this problem using --prefix as well?
Comment 5 Chris Thompson 2003-08-15 22:23:58 UTC
I am using --prefix.  I have not tried without using --prefix. 
Comment 6 Hendrik Kueck 2003-08-15 22:26:18 UTC
Chris: If you can, maybe give it a try. I can not try this here, as I do not
have root access.
Comment 7 Chris Thompson 2003-08-15 22:44:36 UTC
Tried running from the built source directory (~/kde3src/kdevelop/src/.libs/gideon) rather 
than running the installed executable.  I get the same error at the same location.  I am 
now building a new version of kdevelop WITHOUT using the --prefix flag, will advise with 
the results. 
 
Comment 8 Chris Thompson 2003-08-16 02:34:40 UTC
I just compiled from a clean checkout of CVS without using --prefix.  I get exactly the 
same problem at exactly the same line of code.  Sorry, folks. 
Comment 9 Chris Thompson 2003-08-16 20:10:37 UTC
After updating from CVS today, I now get the following stack trace which looks to be 
slightly different.  The crash still occurs when closing a project. 
 
kdevelop (cpp support): CppCodeCompletion::slotActivePartChanged() 
kdevelop (cpp support): BackgroundParser::removeAllFiles() 
kdevelop (debugger): GDBController::slotStopDebugger() called 
kdevelop (debugger): Disassemble widget active: false 
kdevelop (cpp support): DistpartPart::~DistpartPart() 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 16384 (LWP 18828)] 
0x00000000 in ?? () 
(gdb) bt 
#0  0x00000000 in ?? () 
#1  0x40995057 in KXMLGUI::ContainerNode::unplugActions(KXMLGUI::BuildState&) 
    () from /usr/kde/3.1/lib/libkdeui.so.4 
#2  0x40994aac in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#3  0x40994cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#4  0x40994a9d in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#5  0x40994cf3 in KXMLGUI::ContainerNode::destructChildren(QDomElement const&, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#6  0x40994a9d in KXMLGUI::ContainerNode::destruct(QDomElement, 
KXMLGUI::BuildState&) () from /usr/kde/3.1/lib/libkdeui.so.4 
#7  0x40990737 in KXMLGUIFactory::removeClient(KXMLGUIClient*) () 
   from /usr/kde/3.1/lib/libkdeui.so.4 
#8  0x0807bc93 in ProjectManager::unloadLanguageSupport() (this=0x81ab208) 
    at projectmanager.cpp:466 
#9  0x0807a483 in ProjectManager::closeProject() (this=0x8b31d20) 
    at projectmanager.cpp:277 
#10 0x0807d535 in ProjectManager::qt_invoke(int, QUObject*) (this=0x8b31d48, 
    _id=145956128, _o=0xbfffe950) at projectmanager.moc:109 
#11 0x40ec4639 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/qt/3/lib/libqt-mt.so.3 
 
Comment 10 Hendrik Kueck 2003-08-18 00:34:32 UTC
Seems to be fixed (for me) in todays CVS build.
Thanks developers! Good work.
Comment 11 Chris Thompson 2003-08-18 04:16:14 UTC
I am afraid it still isn't fixed, at least not for me.  I'm still getting a crash in the same 
location as I described above (20030816 2010) 
 
Comment 12 Jens Dagerbo 2003-08-18 16:53:27 UTC
*** Bug 62407 has been marked as a duplicate of this bug. ***
Comment 13 Jens Dagerbo 2003-08-19 15:43:30 UTC
*** Bug 62929 has been marked as a duplicate of this bug. ***
Comment 14 Amilcar do Carmo Lucas 2003-08-21 15:32:59 UTC
cvs up and retest 
Comment 15 Chris Thompson 2003-08-21 16:26:54 UTC
It doesn't crash for me any more!  Wow!  I'm interested to know (off-list) what you did to 
fix the problem. 
 
I also think we shouldn't close this bug until at least one other person has confirmed this 
fixed the bug for them as well. 
 
Comment 16 Volker Krause 2003-08-21 17:10:43 UTC
Works here now, too :-)
Comment 17 Alexandros Karypidis 2003-08-21 17:14:42 UTC
I also don't get a crash anymore. 
 
Comment 18 Chris Thompson 2003-08-21 17:26:54 UTC
I'm the reporter, I'm marking this bug as resolved as enough people have shown that it 
works fine now.  Thanks, everyone. 
Comment 19 Amilcar do Carmo Lucas 2003-08-21 17:28:55 UTC
Looks like Roberto did it again!

http://lists.kde.org/?l=kde-cvs&m=106141321316045&w=2
Comment 20 Peter Antonius 2003-08-21 21:48:19 UTC
Subject: Re:  Crash when closing a project

Chris Thompson wrote:

>------- You are receiving this mail because: -------
>You are a voter for the bug, or are watching someone who is.
>     
>http://bugs.kde.org/show_bug.cgi?id=62698     
>
>
>
>
>------- Additional Comments From chris@hypocrite.org  2003-08-21 16:26 -------
>It doesn't crash for me any more!  Wow!  I'm interested to know (off-list) what you did to 
>fix the problem. 
> 
>I also think we shouldn't close this bug until at least one other person has confirmed this 
>fixed the bug for them as well.
>
>  
>
It works again with the current CVS (2003-08-21) :-)

Comment 21 Amilcar do Carmo Lucas 2003-08-28 10:58:57 UTC
*** Bug 63051 has been marked as a duplicate of this bug. ***