Bug 251976 - crash in backgroundparser::clear on close in kde master (4.2)
Summary: crash in backgroundparser::clear on close in kde master (4.2)
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (other bugs)
Version First Reported In: git master
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: 4.1.0
Assignee: kdevelop-bugs-null
URL:
Keywords:
: 255477 265855 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-09-21 20:45 UTC by Milian Wolff
Modified: 2011-02-09 11:17 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Milian Wolff 2010-09-21 20:45:37 UTC
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
Comment 1 Milian Wolff 2010-09-21 20:52:04 UTC
David, do you have any idea on this one?
Comment 2 Milian Wolff 2010-10-24 02:57:35 UTC
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
Comment 3 Milian Wolff 2010-10-24 03:00:26 UTC
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
Comment 4 Milian Wolff 2010-10-28 13:34:43 UTC
*** Bug 255477 has been marked as a duplicate of this bug. ***
Comment 5 Milian Wolff 2011-02-09 11:17:22 UTC
*** Bug 265855 has been marked as a duplicate of this bug. ***