Version: SVN OS: Linux kdevplatform 2ceef65df9825c729d7083e681db863f4877f3a8 kdevelop 6499d89a742b1a1cf966980353dfc97537f283eb both using the master branch. When I close KDevelop it crashes, see the strange valgrind log attached Reproducible: Always Steps to Reproduce: close KDevelop while some files get parsed Actual Results: crash Expected Results: no crash Valgrind report: ==11088== Thread 1: ==11088== Invalid read of size 8 ==11088== at 0xC17B160: QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const (qscopedpointer.h:112) ==11088== by 0xC18DDD7: QObject::parent() const (qobject.h:250) ==11088== by 0xC18B3F1: KDevelop::BackgroundParser::clear(QObject*) (backgroundparser.cpp:364) ==11088== by 0x32F82E31: CppLanguageSupport::~CppLanguageSupport() (cpplanguagesupport.cpp:369) ==11088== by 0x32F82F0B: CppLanguageSupport::~CppLanguageSupport() (cpplanguagesupport.cpp:377) ==11088== by 0x558780A: KDevelop::PluginController::unloadPlugin(KDevelop::IPlugin*, KDevelop::PluginController::PluginDeletion) (plugincontroller.cpp:331) ==11088== by 0x558676C: KDevelop::PluginController::cleanup() (plugincontroller.cpp:201) ==11088== by 0x559057A: KDevelop::Core::cleanup() (core.cpp:336) ==11088== by 0x557C823: KDevelop::MainWindow::~MainWindow() (mainwindow.cpp:122) ==11088== by 0x557C939: KDevelop::MainWindow::~MainWindow() (mainwindow.cpp:128) ==11088== by 0x8E4965C: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.6.3) ==11088== by 0x9567C3C: QWidget::event(QEvent*) (in /usr/lib/libQtGui.so.4.6.3) ==11088== Address 0x304a0788 is not stack'd, malloc'd or (recently) free'd ==11088== ==11088== Invalid read of size 8 ==11088== at 0xC17B18B: QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const (qscopedpointer.h:113) ==11088== by 0xC18DDD7: QObject::parent() const (qobject.h:250) ==11088== by 0xC18B3F1: KDevelop::BackgroundParser::clear(QObject*) (backgroundparser.cpp:364) ==11088== by 0x32F82E31: CppLanguageSupport::~CppLanguageSupport() (cpplanguagesupport.cpp:369) ==11088== by 0x32F82F0B: CppLanguageSupport::~CppLanguageSupport() (cpplanguagesupport.cpp:377) ==11088== by 0x558780A: KDevelop::PluginController::unloadPlugin(KDevelop::IPlugin*, KDevelop::PluginController::PluginDeletion) (plugincontroller.cpp:331) ==11088== by 0x558676C: KDevelop::PluginController::cleanup() (plugincontroller.cpp:201) ==11088== by 0x559057A: KDevelop::Core::cleanup() (core.cpp:336) ==11088== by 0x557C823: KDevelop::MainWindow::~MainWindow() (mainwindow.cpp:122) ==11088== by 0x557C939: KDevelop::MainWindow::~MainWindow() (mainwindow.cpp:128) ==11088== by 0x8E4965C: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.6.3) ==11088== by 0x9567C3C: QWidget::event(QEvent*) (in /usr/lib/libQtGui.so.4.6.3) ==11088== Address 0x304a0788 is not stack'd, malloc'd or (recently) free'd ==11088== KCrash: Application 'kdevelop' crashing... GDB Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault [Current thread is 1 (Thread 0x7fe77477d760 (LWP 14709))] Thread 9 (Thread 0x7fe75daf7710 (LWP 14710)): #0 0x00007fe77007b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe7702feab2 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #2 0x00007fe76ceec082 in KDevelop::DUChainPrivate::CleanupThread::run (this=0x27ddd80) at /home/milian/projects/kde4/kdevplatform/language/duchain/duchain.cpp:283 #3 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #4 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #5 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () Thread 8 (Thread 0x7fe753bf8710 (LWP 14711)): #0 0x00007fe76e7880b3 in select () from /lib/libc.so.6 #1 0x00007fe7703c5e3d in ?? () from /usr/lib/libQtCore.so.4 #2 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #3 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #4 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 7 (Thread 0x7fe7531c5710 (LWP 14713)): #0 0x00007fe77007b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe7702feb4b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #2 0x00007fe772c2b1d6 in ?? () from /usr/lib/libthreadweaver.so.4 #3 0x00007fe772c2d583 in ?? () from /usr/lib/libthreadweaver.so.4 #4 0x00007fe772c2c47f in ?? () from /usr/lib/libthreadweaver.so.4 #5 0x00007fe772c2c508 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4 #6 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #7 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #8 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #9 0x0000000000000000 in ?? () Thread 6 (Thread 0x7fe7529c4710 (LWP 14714)): #0 0x00007fe77007b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe7702feab2 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #2 0x00007fe7702f4ba0 in ?? () from /usr/lib/libQtCore.so.4 #3 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #4 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #5 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () Thread 5 (Thread 0x7fe74be93710 (LWP 14795)): #0 0x00007fe77007b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe7702feb4b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #2 0x00007fe772c2b1d6 in ?? () from /usr/lib/libthreadweaver.so.4 #3 0x00007fe772c2d583 in ?? () from /usr/lib/libthreadweaver.so.4 #4 0x00007fe772c2c47f in ?? () from /usr/lib/libthreadweaver.so.4 #5 0x00007fe772c2c508 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4 #6 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #7 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #8 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #9 0x0000000000000000 in ?? () Thread 4 (Thread 0x7fe745cc0710 (LWP 14809)): #0 0x00007fe77007b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe76db64540 in ?? () from /usr/lib/libQtScript.so.4 #2 0x00007fe76db64579 in ?? () from /usr/lib/libQtScript.so.4 #3 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #4 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 3 (Thread 0x7fe7439a5710 (LWP 14822)): #0 0x00007fe77007b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe7702feb4b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #2 0x00007fe772c2b1d6 in ?? () from /usr/lib/libthreadweaver.so.4 #3 0x00007fe772c2d583 in ?? () from /usr/lib/libthreadweaver.so.4 #4 0x00007fe772c2c47f in ?? () from /usr/lib/libthreadweaver.so.4 #5 0x00007fe772c2c508 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4 #6 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #7 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #8 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #9 0x0000000000000000 in ?? () Thread 2 (Thread 0x7fe7431a4710 (LWP 14823)): #0 0x00007fe77007b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007fe7702feb4b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #2 0x00007fe772c2b1d6 in ?? () from /usr/lib/libthreadweaver.so.4 #3 0x00007fe772c2d583 in ?? () from /usr/lib/libthreadweaver.so.4 #4 0x00007fe772c2c47f in ?? () from /usr/lib/libthreadweaver.so.4 #5 0x00007fe772c2c508 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4 #6 0x00007fe7702fe485 in ?? () from /usr/lib/libQtCore.so.4 #7 0x00007fe770076cb0 in start_thread () from /lib/libpthread.so.0 #8 0x00007fe76e78e7ad in clone () from /lib/libc.so.6 #9 0x0000000000000000 in ?? () Thread 1 (Thread 0x7fe77477d760 (LWP 14709)): [KCrash Handler] #6 0x00007fe76ceccb7b in KDevelop::ParseJob::setBackgroundParser (this=0x7fe73c31a080, parser=0x0) at /home/milian/projects/kde4/kdevplatform/language/backgroundparser/parsejob.cpp:203 #7 0x00007fe76cec44d7 in ~BackgroundParserPrivate (this=0x25f3510, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/language/backgroundparser/backgroundparser.cpp:102 #8 0x00007fe76cec12d6 in ~BackgroundParser (this=0x25f72a0, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/language/backgroundparser/backgroundparser.cpp:349 #9 0x00007fe76cec133a in ~BackgroundParser (this=0x25f72a0, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/language/backgroundparser/backgroundparser.cpp:350 #10 0x00007fe7703f5a74 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4 #11 0x00007fe7703fa725 in QObject::~QObject() () from /usr/lib/libQtCore.so.4 #12 0x00007fe773c33f52 in ~ILanguageController (this=0x223da50, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/interfaces/ilanguagecontroller.h:38 #13 0x00007fe773c32964 in ~LanguageController (this=0x223da50, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/shell/languagecontroller.cpp:122 #14 0x00007fe773c3299c in ~LanguageController (this=0x223da50, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/shell/languagecontroller.cpp:125 #15 0x00007fe773c0cf10 in ~CorePrivate (this=0x20dd0d0, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/shell/core.cpp:252 #16 0x00007fe773c0d3a4 in ~Core (this=0x20a6070, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/shell/core.cpp:303 #17 0x00007fe773c0d3f0 in ~Core (this=0x20a6070, __in_chrg=<value optimized out>) at /home/milian/projects/kde4/kdevplatform/shell/core.cpp:304 #18 0x00007fe7703f665d in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4 #19 0x00007fe76f5c0854 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #20 0x00007fe76f5c493a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #21 0x00007fe770b8ea76 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #22 0x0000000000404a4c in KDevelopApplication::notify (this=0x7fff971bd9a0, receiver=0x20a6070, event=0x224aa30) at /home/milian/projects/kde4/kdevelop/app/main.cpp:87 #23 0x00007fe7703e4d3c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #24 0x00007fe7703e849a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4 #25 0x00007fe77040d323 in ?? () from /usr/lib/libQtCore.so.4 #26 0x00007fe7690c8b33 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #27 0x00007fe7690c9310 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #28 0x00007fe7690c95ad in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #29 0x00007fe77040d82f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #30 0x00007fe76f66037e in ?? () from /usr/lib/libQtGui.so.4 #31 0x00007fe7703e4122 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #32 0x00007fe7703e435c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #33 0x00007fe7703e876b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #34 0x000000000040a0ea in main (argc=3, argv=0x7fff971bf378) at /home/milian/projects/kde4/kdevelop/app/main.cpp:402
David, do you have any idea on this one?
SVN commit 1189097 by mwolff: don't crash when dequeing job sequeence in suspended weaver BUG: 251976 M +9 -0 Tests/JobTests.cpp M +2 -0 Tests/JobTests.h M +3 -0 Weaver/JobCollection.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1189097
SVN commit 1189099 by mwolff: don't crash when dequeing job sequeence in suspended weaver BUG: 251976 M +9 -0 Tests/JobTests.cpp M +2 -0 Tests/JobTests.h M +3 -0 Weaver/JobCollection.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1189099
*** Bug 255477 has been marked as a duplicate of this bug. ***
*** Bug 265855 has been marked as a duplicate of this bug. ***