Bug 309580

Summary: Kdevelop crashes sometimes on close
Product: [Applications] kdevelop Reporter: André Stein <andre.stein.1985>
Component: generalAssignee: kdevelop-bugs-null
Status: RESOLVED UPSTREAM    
Severity: crash CC: cfeck, olivier.jg
Priority: NOR    
Version: git master   
Target Milestone: 4.3.0   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description André Stein 2012-11-05 11:52:18 UTC
I had a situation where kdevelop crashed quite reproducebly (I had a project open and 2 extra source files). So I could gather some valgrind output (beware it's a RelWithDebInfo build so some uninitialised reads might be false alarms).


BACKTRACE:

Application: KDevelop (kdevelop), signal: Segmentation fault
Using host libthread_db library &quot;/lib/x86_64-linux-gnu/libthread_db.so.1&quot;.
[Current thread is 1 (Thread 0x7ff676cb5780 (LWP 5633))]

Thread 10 (Thread 0x7ff66ccc9700 (LWP 5634)):
#0  pthread_cond_timedwait&#64;&#64;GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:215
#1  0x00007ff68748bfa7 in wait (time=1000, this=0x2311950) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=&lt;optimized out&gt;, mutex=0x2318a00, time=1000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007ff68336587b in KDevelop::DUChainPrivate::CleanupThread::run (this=0x23189e0) at /home/stone/build/kdevplatform/language/duchain/duchain.cpp:282
#4  0x00007ff68748baec in QThreadPrivate::start (arg=0x23189e0) at thread/qthread_unix.cpp:338
#5  0x00007ff685287e9a in start_thread (arg=0x7ff66ccc9700) at pthread_create.c:308
#6  0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7ff657fff700 (LWP 5636)):
#0  0x00007ff68618e023 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ff687566fe2 in QProcessManager::run (this=0x7ff6878e0520 &lt;processManager()::processManager&gt;) at io/qprocess_unix.cpp:245
#2  0x00007ff68748baec in QThreadPrivate::start (arg=0x7ff6878e0520 &lt;processManager()::processManager&gt;) at thread/qthread_unix.cpp:338
#3  0x00007ff685287e9a in start_thread (arg=0x7ff657fff700) at pthread_create.c:308
#4  0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7ff64f551700 (LWP 5638)):
#0  0x00007ff686189303 in __GI___poll (fds=&lt;optimized out&gt;, nfds=&lt;optimized out&gt;, timeout=&lt;optimized out&gt;) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ff68050ed84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff68050eea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ff6875b6c16 in QEventDispatcherGlib::processEvents (this=0x7ff6480008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007ff6875872bf in QEventLoop::processEvents (this=this&#64;entry=0x7ff64f550dd0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007ff687587548 in QEventLoop::exec (this=0x7ff64f550dd0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007ff687488b10 in QThread::exec (this=&lt;optimized out&gt;) at thread/qthread.cpp:501
#7  0x00007ff6875679af in QInotifyFileSystemWatcherEngine::run (this=0x1319430) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007ff68748baec in QThreadPrivate::start (arg=0x1319430) at thread/qthread_unix.cpp:338
#9  0x00007ff685287e9a in start_thread (arg=0x7ff64f551700) at pthread_create.c:308
#10 0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7ff64cd8d700 (LWP 5645)):
#0  pthread_cond_wait&#64;&#64;GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ff6826cecd7 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7ff6829dc660 &lt;QTWTF::pageheap_memory&gt;) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007ff6826ced09 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=&lt;optimized out&gt;) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007ff685287e9a in start_thread (arg=0x7ff64cd8d700) at pthread_create.c:308
#4  0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7ff63ffff700 (LWP 5646)):
#0  0x00007ff686189303 in __GI___poll (fds=&lt;optimized out&gt;, nfds=&lt;optimized out&gt;, timeout=&lt;optimized out&gt;) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ff68050ed84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff68050eea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ff6875b6c16 in QEventDispatcherGlib::processEvents (this=0x7ff6380008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007ff6875872bf in QEventLoop::processEvents (this=this&#64;entry=0x7ff63fffedd0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007ff687587548 in QEventLoop::exec (this=0x7ff63fffedd0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007ff687488b10 in QThread::exec (this=&lt;optimized out&gt;) at thread/qthread.cpp:501
#7  0x00007ff6875679af in QInotifyFileSystemWatcherEngine::run (this=0x4fc78f0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007ff68748baec in QThreadPrivate::start (arg=0x4fc78f0) at thread/qthread_unix.cpp:338
#9  0x00007ff685287e9a in start_thread (arg=0x7ff63ffff700) at pthread_create.c:308
#10 0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7ff63cf9c700 (LWP 5792)):
#0  pthread_cond_wait&#64;&#64;GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ff67d1a2b2d in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007ff67d1a2c39 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007ff685287e9a in start_thread (arg=0x7ff63cf9c700) at pthread_create.c:308
#4  0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7ff63d79d700 (LWP 5794)):
#0  0x00007fff8123365e in clock_gettime ()
#1  0x00007ff68471315d in __GI_clock_gettime (clock_id=&lt;optimized out&gt;, tp=&lt;optimized out&gt;) at ../sysdeps/unix/clock_gettime.c:116
#2  0x00007ff6874e19c4 in do_gettime (frac=0x7ff63d79cb88, sec=0x7ff63d79cb80) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007ff6875b741d in QTimerInfoList::updateCurrentTime (this=0x7ff62801d0a0) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007ff6875b6655 in timerSourceCheckHelper (src=0x7ff62801d040) at kernel/qeventdispatcher_glib.cpp:150
#6  timerSourceCheckHelper (src=0x7ff62801d040) at kernel/qeventdispatcher_glib.cpp:144
#7  0x00007ff68050e88c in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ff68050ed22 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007ff68050eea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ff6875b6c16 in QEventDispatcherGlib::processEvents (this=0x7ff6281d3e30, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0x00007ff6875872bf in QEventLoop::processEvents (this=this&#64;entry=0x7ff63d79ce00, flags=...) at kernel/qeventloop.cpp:149
#12 0x00007ff687587548 in QEventLoop::exec (this=0x7ff63d79ce00, flags=...) at kernel/qeventloop.cpp:204
#13 0x00007ff687488b10 in QThread::exec (this=&lt;optimized out&gt;) at thread/qthread.cpp:501
#14 0x00007ff68748baec in QThreadPrivate::start (arg=0x2fa3880) at thread/qthread_unix.cpp:338
#15 0x00007ff685287e9a in start_thread (arg=0x7ff63d79d700) at pthread_create.c:308
#16 0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#17 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7ff62e798700 (LWP 5913)):
#0  pthread_cond_wait&#64;&#64;GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ff68748c04b in wait (time=18446744073709551615, this=0x6873e90) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=&lt;optimized out&gt;, mutex=0x68745e0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007ff67ddef0e1 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x6874380, th=0x6874a10) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ff67ddf192b in ThreadWeaver::WorkingHardState::applyForWork (this=0x6874670, th=0x6874a10) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007ff67ddf079f in ThreadWeaver::ThreadRunHelper::run (this=this&#64;entry=0x7ff62e797e00, parent=0x6874380, th=th&#64;entry=0x6874a10) at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007ff67ddf082b in ThreadWeaver::Thread::run (this=0x6874a10) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007ff68748baec in QThreadPrivate::start (arg=0x6874a10) at thread/qthread_unix.cpp:338
#8  0x00007ff685287e9a in start_thread (arg=0x7ff62e798700) at pthread_create.c:308
#9  0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7ff62df97700 (LWP 5914)):
#0  pthread_cond_wait&#64;&#64;GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ff68748c04b in wait (time=18446744073709551615, this=0x6873e90) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=&lt;optimized out&gt;, mutex=0x68745e0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007ff67ddef0e1 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x6874380, th=0x38d52f0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ff67ddf192b in ThreadWeaver::WorkingHardState::applyForWork (this=0x6874670, th=0x38d52f0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007ff67ddf079f in ThreadWeaver::ThreadRunHelper::run (this=this&#64;entry=0x7ff62df96e00, parent=0x6874380, th=th&#64;entry=0x38d52f0) at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007ff67ddf082b in ThreadWeaver::Thread::run (this=0x38d52f0) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007ff68748baec in QThreadPrivate::start (arg=0x38d52f0) at thread/qthread_unix.cpp:338
#8  0x00007ff685287e9a in start_thread (arg=0x7ff62df97700) at pthread_create.c:308
#9  0x00007ff686194cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ff676cb5780 (LWP 5633)):
[KCrash Handler]
#6  0x00007ff6884dedd4 in QDeclarativeItem::~QDeclarativeItem (this=0x5557af0, __in_chrg=&lt;optimized out&gt;) at graphicsitems/qdeclarativeitem.cpp:1668
#7  0x00007ff6884a26ee in ~QDeclarativeElement (this=0x5557af0, __in_chrg=&lt;optimized out&gt;) at ../../include/QtDeclarative/../../src/declarative/qml/qdeclarativeprivate.h:87
#8  QDeclarativePrivate::QDeclarativeElement&lt;QDeclarativeItem&gt;::~QDeclarativeElement (this=0x5557af0, __in_chrg=&lt;optimized out&gt;) at ../../include/QtDeclarative/../../src/declarative/qml/qdeclarativeprivate.h:87
#9  0x00007ff68759d468 in QObject::event (this=0x5557af0, e=&lt;optimized out&gt;) at kernel/qobject.cpp:1176
#10 0x00007ff68692fe9c in QApplicationPrivate::notify_helper (this=this&#64;entry=0xef3750, receiver=receiver&#64;entry=0x5557af0, e=e&#64;entry=0x54b1890) at kernel/qapplication.cpp:4562
#11 0x00007ff68693430a in QApplication::notify (this=0x7fff81219850, receiver=0x5557af0, e=0x54b1890) at kernel/qapplication.cpp:4423
#12 0x00007ff687b091d6 in KApplication::notify (this=0x7fff81219850, receiver=0x5557af0, event=0x54b1890) at ../../kdeui/kernel/kapplication.cpp:311
#13 0x00007ff68758856e in QCoreApplication::notifyInternal (this=0x7fff81219850, receiver=receiver&#64;entry=0x5557af0, event=event&#64;entry=0x54b1890) at kernel/qcoreapplication.cpp:915
#14 0x00007ff68758c3f1 in sendEvent (event=0x54b1890, receiver=0x5557af0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#15 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver&#64;entry=0x0, event_type=event_type&#64;entry=52, data=0xe40670) at kernel/qcoreapplication.cpp:1539
#16 0x00007ff68758c673 in QCoreApplication::sendPostedEvents (receiver=receiver&#64;entry=0x0, event_type=event_type&#64;entry=52) at kernel/qcoreapplication.cpp:1432
#17 0x00007ff68758c73f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1194
#18 0x000000000040d93e in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at /home/stone/build/kdevelop/app/main.cpp:503


VALGRIND OUTPUT:

==10474== Memcheck, a memory error detector
==10474== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==10474== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==10474== Command: kdevelop
==10474== Parent PID: 9978
==10474== 
==10474== Conditional jump or move depends on uninitialised value(s)
==10474==    at 0xAA9A022: KDevelop::ProjectChangesModel::jobUnregistered(KJob*) (qlist.h:885)
==10474==    by 0x6C4EF5E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x530ED61: KDevelop::IRunController::jobUnregistered(KJob*) (iruncontroller.moc:136)
==10474==    by 0x55C4395: KDevelop::RunController::unregisterJob(KJob*) (runcontroller.cpp:584)
==10474==    by 0x55C109D: KDevelop::RunController::finished(KJob*) (runcontroller.cpp:633)
==10474==    by 0x55C7864: KDevelop::RunController::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (runcontroller.moc:73)
==10474==    by 0x6C4EF5E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x4F55CBE: KJob::finished(KJob*) (kjob.moc:187)
==10474==    by 0x4F55F04: KJob::emitResult() (kjob.cpp:316)
==10474==    by 0xAA9C833: KDevelop::DVcsJob::jobIsReady() (dvcsjob.cpp:295)
==10474==    by 0xAA9C8F9: KDevelop::DVcsJob::slotProcessExited(int, QProcess::ExitStatus) (dvcsjob.cpp:251)
==10474==    by 0x6C4EF5E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==  Uninitialised value was created by a heap allocation
==10474==    at 0x4C2AF8E: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10474==    by 0xAA85F3A: KDevelop::VcsJob::VcsJob(QObject*, KDevelop::OutputJob::OutputJobVerbosity) (vcsjob.cpp:33)
==10474==    by 0xAA9C3AF: KDevelop::DVcsJob::DVcsJob(QDir const&amp;, KDevelop::IPlugin*, KDevelop::OutputJob::OutputJobVerbosity) (dvcsjob.cpp:65)
==10474==    by 0x333CFE4B: GitPlugin::GitPlugin(QObject*, QList&lt;QVariant&gt; const&amp;) (gitplugin.cpp:192)
==10474==    by 0x333DA856: QObject* KPluginFactory::createInstance&lt;GitPlugin, QObject&gt;(QWidget*, QObject*, QList&lt;QVariant&gt; const&amp;) (kpluginfactory.h:477)
==10474==    by 0x5034184: KPluginFactory::create(char const*, QWidget*, QObject*, QList&lt;QVariant&gt; const&amp;, QString const&amp;) (kpluginfactory.cpp:203)
==10474==    by 0x558F20B: KDevelop::PluginController::loadPluginInternal(QString const&amp;) (kpluginfactory.h:531)
==10474==    by 0x55927F1: KDevelop::PluginController::initialize() (plugincontroller.cpp:268)
==10474==    by 0x55959F5: KDevelop::CorePrivate::initialize(KDevelop::Core::Setup, QString) (core.cpp:267)
==10474==    by 0x5597693: KDevelop::Core::initialize(KSplashScreen*, KDevelop::Core::Setup, QString const&amp;) (core.cpp:331)
==10474==    by 0x40C920: main (main.cpp:385)
==10474== 
==10474== Warning: set address range perms: large range [0x454a1000, 0x854a1000) (defined)
==10474== Invalid write of size 8
==10474==    at 0xBA6D284: QTJSC::JIT::unlinkCall(QTJSC::CallLinkInfo*) (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBA199D7: QTJSC::CodeBlock::unlinkCallers() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAD887B: QTJSC::JSFunction::~JSFunction() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAB0141: QTJSC::Heap::freeBlocks() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAB038B: QTJSC::Heap::destroy() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBB825BF: QScriptEnginePrivate::~QScriptEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBB82C38: QScriptEnginePrivate::~QScriptEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0x6C4FFFB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x5C2D494: QDeclarativeEnginePrivate::~QDeclarativeEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4.8.3)
==10474==    by 0x5C2D6C8: QDeclarativeEnginePrivate::~QDeclarativeEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4.8.3)
==10474==    by 0x6C4FFFB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x5C288B8: QDeclarativeEngine::~QDeclarativeEngine() (in /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4.8.3)
==10474==  Address 0x34ea0400 is not stack'd, malloc'd or (recently) free'd
==10474== 
==10474== Invalid read of size 4
==10474==    at 0x6700670: startFromKdeinit(int, char const**) (kcrash.cpp:781)
==10474==    by 0x6701175: KCrash::startProcess(int, char const**, bool) (kcrash.cpp:537)
==10474==    by 0x6701580: KCrash::defaultCrashHandler(int) (kcrash.cpp:435)
==10474==    by 0x7F7749F: ??? (in /lib/x86_64-linux-gnu/libc-2.15.so)
==10474==    by 0xBA6D283: QTJSC::JIT::unlinkCall(QTJSC::CallLinkInfo*) (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBA199D7: QTJSC::CodeBlock::unlinkCallers() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAD887B: QTJSC::JSFunction::~JSFunction() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAB0141: QTJSC::Heap::freeBlocks() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAB038B: QTJSC::Heap::destroy() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBB825BF: QScriptEnginePrivate::~QScriptEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBB82C38: QScriptEnginePrivate::~QScriptEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0x6C4FFFB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==  Address 0x1781dc90 is 0 bytes inside a block of size 3 alloc'd
==10474==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10474==    by 0x67005D0: startFromKdeinit(int, char const**) (kcrash.cpp:660)
==10474==    by 0x6701175: KCrash::startProcess(int, char const**, bool) (kcrash.cpp:537)
==10474==    by 0x6701580: KCrash::defaultCrashHandler(int) (kcrash.cpp:435)
==10474==    by 0x7F7749F: ??? (in /lib/x86_64-linux-gnu/libc-2.15.so)
==10474==    by 0xBA6D283: QTJSC::JIT::unlinkCall(QTJSC::CallLinkInfo*) (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBA199D7: QTJSC::CodeBlock::unlinkCallers() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAD887B: QTJSC::JSFunction::~JSFunction() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAB0141: QTJSC::Heap::freeBlocks() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBAB038B: QTJSC::Heap::destroy() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBB825BF: QScriptEnginePrivate::~QScriptEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474==    by 0xBB82C38: QScriptEnginePrivate::~QScriptEnginePrivate() (in /usr/lib/x86_64-linux-gnu/libQtScript.so.4.8.3)
==10474== 
==10474== Thread 9:
==10474== Invalid read of size 2
==10474==    at 0x6C67493: socketNotifierSourceCheck(_GSource*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0xDC2888B: g_main_context_check (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28D21: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28EA3: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0x6C67C15: QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C382BE: QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C38547: QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B39B0F: QThread::exec() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C189AE: QInotifyFileSystemWatcherEngine::run() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B3CAEB: QThreadPrivate::start(void*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x8F0AE99: start_thread (pthread_create.c:308)
==10474==    by 0x8034CBC: clone (clone.S:112)
==10474==  Address 0x3e15ef96 is 6 bytes inside a block of size 16 free'd
==10474==    at 0x4C2A44B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10474==    by 0x6C67492: socketNotifierSourceCheck(_GSource*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0xDC2888B: g_main_context_check (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28D21: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28EA3: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0x6C67C15: QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C382BE: QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C38547: QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B39B0F: QThread::exec() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C189AE: QInotifyFileSystemWatcherEngine::run() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B3CAEB: QThreadPrivate::start(void*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x8F0AE99: start_thread (pthread_create.c:308)
==10474== 
==10474== Invalid read of size 2
==10474==    at 0x6C6749B: socketNotifierSourceCheck(_GSource*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0xDC2888B: g_main_context_check (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28D21: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28EA3: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0x6C67C15: QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C382BE: QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C38547: QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B39B0F: QThread::exec() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C189AE: QInotifyFileSystemWatcherEngine::run() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B3CAEB: QThreadPrivate::start(void*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x8F0AE99: start_thread (pthread_create.c:308)
==10474==    by 0x8034CBC: clone (clone.S:112)
==10474==  Address 0x3e15ef94 is 4 bytes inside a block of size 16 free'd
==10474==    at 0x4C2A44B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10474==    by 0x6C67492: socketNotifierSourceCheck(_GSource*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0xDC2888B: g_main_context_check (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28D21: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0xDC28EA3: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==10474==    by 0x6C67C15: QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C382BE: QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C38547: QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B39B0F: QThread::exec() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6C189AE: QInotifyFileSystemWatcherEngine::run() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x6B3CAEB: QThreadPrivate::start(void*) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==10474==    by 0x8F0AE99: start_thread (pthread_create.c:308)
==10474== 
==10474== 
==10474== HEAP SUMMARY:
==10474==     in use at exit: 80,169,138 bytes in 217,926 blocks
==10474==   total heap usage: 2,968,761 allocs, 2,750,835 frees, 677,397,672 bytes allocated
==10474== 
==10474== LEAK SUMMARY:
==10474==    definitely lost: 23,152 bytes in 80 blocks
==10474==    indirectly lost: 95,382 bytes in 2,424 blocks
==10474==      possibly lost: 2,750,315 bytes in 45,794 blocks
==10474==    still reachable: 77,300,289 bytes in 169,628 blocks
==10474==         suppressed: 0 bytes in 0 blocks
==10474== Rerun with --leak-check=full to see details of leaked memory
==10474== 
==10474== For counts of detected and suppressed errors, rerun with: -v
==10474== ERROR SUMMARY: 13 errors from 5 contexts (suppressed: 2 from 2)

Reproducible: Sometimes

Steps to Reproduce:
1. No exact description possible.
Actual Results:  
Kdevelop crashes
Comment 1 André Stein 2012-11-05 11:56:08 UTC
My Qt Version is 4.8.3
KDE Version: 4.9.2
I'm on Ubuntu.
Comment 2 Olivier.jg 2012-11-05 12:18:36 UTC
So, KDevelop will crash everytime you close it with your current configuration? With one open Project?
Comment 3 André Stein 2012-11-05 13:16:01 UTC
It's one open project with some files open. But it doesn't crash always. It's quite regular (I'd say in one of 5 cases). It must be something related to multithreading. I have six cores configured in a virtual machine and 2 parsing threads.
Comment 4 Milian Wolff 2012-11-09 22:03:32 UTC
Git commit f7fb38ff5c1c6fc091728f744b2e0047f0caf9bb by Milian Wolff.
Committed on 09/11/2012 at 21:57.
Pushed by mwolff into branch 'master'.

Add VcsJob::JobTy::Unknown and use it by default.

This is OK for e.g. the "git --version" job, as shown in
the valgrind report of the following bug:

M  +1    -0    vcs/vcsjob.cpp
M  +1    -0    vcs/vcsjob.h

http://commits.kde.org/kdevplatform/f7fb38ff5c1c6fc091728f744b2e0047f0caf9bb
Comment 5 Milian Wolff 2012-11-09 22:08:56 UTC
please try to reproduce this with a recent qt 4.8.4 that contains these fixes:

https://bugreports.qt-project.org/browse/QTBUG-23871
https://bugreports.qt-project.org/browse/QTBUG-27322

if it's still reproducible, please reopen.
Comment 6 Christoph Feck 2012-11-09 22:40:58 UTC
Milian, I am not sure if the QDeclarative crash is connected to the QtScript bug (tracked at bug 305718), partly because one of them happens on initialization, the other on destruction.
Comment 7 Milian Wolff 2012-11-09 23:31:21 UTC
You mean the two bugs above? Well, the first one "uncovered" the last one, but yes - they are not really related per se. Defacto you need both fixes though, which is why I listed them.
Comment 8 Christoph Feck 2012-11-10 00:21:33 UTC
I am unsure, because we get a lot of similar crashes in Plasma (see bug 302931), but also with Qt 4.8.2, so it is unrelated to the QtScript regression in Qt 4.8.3.

Putting it differently, do you think bug 302931 is also fixed in Qt 4.8.4?
Comment 9 Milian Wolff 2012-11-10 13:30:28 UTC
I'd say its fixed until someone reproduces it with Qt 4.8.4. Anything before that has the two known issues which can result in pretty much everything. So I'd say: wait for feedback of someone who uses Qt 4.8.4.

Cheers