Bug 185640

Summary: Crash after BuilderJob::addJob (backtrace)
Product: [Applications] kdevelop Reporter: Thorben Kröger <thorbenk>
Component: generalAssignee: Andreas Pakulat <apaku>
Status: RESOLVED FIXED    
Severity: crash CC: kdevelop-bugs-null, thorbenk
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Thorben Kröger 2009-02-26 20:14:46 UTC
Version:            (using Devel)
Compiler:          gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux) 
OS:                Linux
Installed from:    Compiled sources

I was building two targets of my application, hit the Cancel Jobs button, made a change to one of the files, and hit F8 again.

Attached is the backtrace.

I'm using qt-copy a very recent kdelibs. kdevplatform and kdevelop are from today.

kdevelop(20136)/kdevelop (cpp support) ContextBuilder::buildProxyContextFromContent: ContextBuilder::buildProxyContextFromContent: recompiling            
kdevelop(20136)/kdevelop (cpp support) CPPInternalParseJob::run: ===-- Parsing finished --===> "/home/thorben/ms/src/examples/demos/lcms/QtPatchWorker.cpp"                                                                                                                                                         
QProcess: Destroyed while process is still running.                                                                                                       
kdevelop(20136)/kdevplatform (usehighlight) ContextBrowserPlugin::showToolTip: not showing tooltip, no navigation-widget                                  
kdevelop(20136)/kdevplatform (shell) KDevelop::Project::relativeUrl: Creating relative url between:  KUrl("file:///home/thorben/ms/src/") KUrl("file:///home/thorben/ms/src/examples/demos/lcms/")                                                                                                                  
kdevelop(20136)/kdevelop (cmake support) CMakeBuilder::build: Building with make                                                                          
kdevelop(20136)/kdevelop (make builder) MakeBuilder::runMake: running new makejob                                                                         
kdevelop(20136)/kdevplatform (shell) KDevelop::Project::relativeUrl: Creating relative url between:  KUrl("file:///home/thorben/ms/src/") KUrl("file:///home/thorben/ms/src/examples/")                                                                                                                             
kdevelop(20136)/kdevelop (cmake support) CMakeBuilder::build: Building with make                                                                          

Program received signal SIGSEGV, Segmentation fault.
0xb7095c65 in QObject::connect (sender=0x962b150, signal=0xb7fa62b8 "2result(KJob*)", receiver=0x80b2508, method=0xb7fa6260 "1slotResult(KJob*)", 
    type=Qt::AutoConnection) at kernel/qobject.cpp:2416                                                                                           
2416        const QMetaObject *smeta = sender->metaObject();                                                                                      
(gdb) bt                                                                                                                                          
#0  0xb7095c65 in QObject::connect (sender=0x962b150, signal=0xb7fa62b8 "2result(KJob*)", receiver=0x80b2508, method=0xb7fa6260 "1slotResult(KJob*)", 
    type=Qt::AutoConnection) at kernel/qobject.cpp:2416                                                                                               
#1  0xb7e90dc3 in QObject::connect (this=0x80b2508, asender=0x962b150, asignal=0xb7fa62b8 "2result(KJob*)", amember=0xb7fa6260 "1slotResult(KJob*)",  
    atype=Qt::AutoConnection) at /home/thorben/devel/src/qt-copy/include/QtCore/../../src/corelib/kernel/qobject.h:303                                
#2  0xb7e9e6ea in KCompositeJob::addSubjob (this=0x80b2508, job=0x962b150) at /home/thorben/devel/src/kdelibs/kdecore/jobs/kcompositejob.cpp:57       
#3  0xaee8cbd9 in BuilderJob::addJob (this=0x80b2508, t=BuilderJob::Build, item=0x8f78c20)                                                            
    at /home/thorben/devel/src/kdevplatform/plugins/projectmanagerview/builderjob.cpp:61                                                              
#4  0xaee8d028 in BuilderJob (this=0x80b2508, t=BuilderJob::Build, items=@0xbfffd2e0)                                                                 
    at /home/thorben/devel/src/kdevplatform/plugins/projectmanagerview/builderjob.cpp:70                                                              
#5  0xaee7b453 in ProjectManagerViewPlugin::runBuilderJob (this=0x8623678, t=BuilderJob::Build)                                                       
    at /home/thorben/devel/src/kdevplatform/plugins/projectmanagerview/projectmanagerviewplugin.cpp:361                                               
#6  0xaee7b577 in ProjectManagerViewPlugin::buildProjectItems (this=0x8623678)                                                                        
    at /home/thorben/devel/src/kdevplatform/plugins/projectmanagerview/projectmanagerviewplugin.cpp:391                                               
#7  0xaee7d048 in ProjectManagerViewPlugin::qt_metacall (this=0x8623678, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfffd41c)                      
    at /home/thorben/devel/build/kdevplatform/plugins/projectmanagerview/projectmanagerviewplugin.moc:105                                             
#8  0xb709462b in QMetaObject::activate (sender=0x84b3858, from_signal_index=5, to_signal_index=6, argv=0xbfffd41c) at kernel/qobject.cpp:3061        
#9  0xb709485c in QMetaObject::activate (sender=0x84b3858, m=0xb6e80228, from_local_signal_index=1, to_local_signal_index=2, argv=0xbfffd41c)         
    at kernel/qobject.cpp:3156                                                                                                                        
#10 0xb66b4d5a in QAction::triggered (this=0x84b3858, _t1=false) at .moc/debug-shared/moc_qaction.cpp:236                                             
#11 0xb66b6a68 in QAction::activate (this=0x84b3858, event=QAction::Trigger) at kernel/qaction.cpp:1155                                               
#12 0xb66b6c07 in QAction::event (this=0x84b3858, e=0xbfffd914) at kernel/qaction.cpp:1074                                                            
#13 0xb72857ae in KAction::event (this=0x84b3858, event=0xbfffd914) at /home/thorben/devel/src/kdelibs/kdeui/actions/kaction.cpp:88                   
#14 0xb66bcf1d in QApplicationPrivate::notify_helper (this=0x80f91d8, receiver=0x84b3858, e=0xbfffd914) at kernel/qapplication.cpp:4051               
#15 0xb66bd272 in QApplication::notify (this=0xbfffe858, receiver=0x84b3858, e=0xbfffd914) at kernel/qapplication.cpp:3598                            
#16 0xb736079d in KApplication::notify (this=0xbfffe858, receiver=0x84b3858, event=0xbfffd914)                                                        
---Type <return> to continue, or q <return> to quit---                                                                                                
    at /home/thorben/devel/src/kdelibs/kdeui/kernel/kapplication.cpp:307                                                                              
#17 0xb707e1f7 in QCoreApplication::notifyInternal (this=0xbfffe858, receiver=0x84b3858, event=0xbfffd914) at kernel/qcoreapplication.cpp:593         
#18 0xb77ff1f3 in QCoreApplication::sendEvent (receiver=0x84b3858, event=0xbfffd914)                                                                  
    at ../../../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:208                                                                     
#19 0xb66fc419 in QShortcutMap::dispatchEvent (this=0x80f9278, e=0xbfffddd4) at kernel/qshortcutmap.cpp:878                                           
#20 0xb66fd98d in QShortcutMap::tryShortcutEvent (this=0x80f9278, o=0x9ed2a88, e=0xbfffddd4) at kernel/qshortcutmap.cpp:364                           
#21 0xb66bd528 in QApplication::notify (this=0xbfffe858, receiver=0x9ed2a88, e=0xbfffddd4) at kernel/qapplication.cpp:3640
#22 0xb736079d in KApplication::notify (this=0xbfffe858, receiver=0x9ed2a88, event=0xbfffddd4)
    at /home/thorben/devel/src/kdelibs/kdeui/kernel/kapplication.cpp:307
#23 0xb707e1f7 in QCoreApplication::notifyInternal (this=0xbfffe858, receiver=0x9ed2a88, event=0xbfffddd4) at kernel/qcoreapplication.cpp:593
#24 0xb66c8b0b in QCoreApplication::sendSpontaneousEvent (receiver=0x9ed2a88, event=0xbfffddd4)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:211
#25 0xb66bca2e in qt_sendSpontaneousEvent (receiver=0x9ed2a88, event=0xbfffddd4) at kernel/qapplication.cpp:4971
#26 0xb6767310 in QKeyMapper::sendKeyEvent (keyWidget=0x9ed2a88, grab=false, type=QEvent::KeyPress, code=16777271, modifiers={i = -1073749816},
    text=@0xbfffe094, autorepeat=false, count=1, nativeScanCode=74, nativeVirtualKey=65477, nativeModifiers=8192) at kernel/qkeymapper_x11.cpp:1669
#27 0xb6768496 in QKeyMapperPrivate::translateKeyEvent (this=0x8134d08, keyWidget=0x9ed2a88, event=0xbfffe530, grab=false)
    at kernel/qkeymapper_x11.cpp:1640
#28 0xb673fd78 in QApplication::x11ProcessEvent (this=0xbfffe858, event=0xbfffe530) at kernel/qapplication_x11.cpp:3425
#29 0xb676a8f5 in x11EventSourceDispatch (s=0x80fc120, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:141
#30 0xb59f19a8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#31 0xb59f5063 in ?? () from /usr/lib/libglib-2.0.so.0
#32 0xb59f5221 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#33 0xb70acf0a in QEventDispatcherGlib::processEvents (this=0x80f9198, flags={i = -1073748232}) at kernel/qeventdispatcher_glib.cpp:318
#34 0xb676a110 in QGuiEventDispatcherGlib::processEvents (this=0x80f9198, flags={i = -1073748184}) at kernel/qguieventdispatcher_glib.cpp:197
#35 0xb707b1dc in QEventLoop::processEvents (this=0xbfffe7b0, flags={i = -1073748112}) at kernel/qeventloop.cpp:144
---Type <return> to continue, or q <return> to quit---
#36 0xb707b436 in QEventLoop::exec (this=0xbfffe7b0, flags={i = -1073748040}) at kernel/qeventloop.cpp:191
#37 0xb707e9cf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:875
#38 0xb66bcc36 in QApplication::exec () at kernel/qapplication.cpp:3526
#39 0x0804f2a6 in main (argc=-1208127248, argv=0x8149b40) at /home/thorben/devel/src/kdevelop/app/main.cpp:203
(gdb)
(gdb)
Comment 1 Andreas Pakulat 2009-02-26 20:53:01 UTC
Qt bug, please report at http://www.qtsoftware.com/developer/task-tracker
Comment 2 Thorben Kröger 2009-02-26 22:50:16 UTC
Bug report has been filed in Qt's bug tracker (hasn't appeared there yet though). I recently got that crash again; if it shows up once more, maybe Iĺl have time to bug someone on #qt about it ;-)
Comment 3 Thorben Kröger 2009-02-27 00:18:00 UTC
I tried to reproduce this bug while running kdevelop in valgrind, this is what I got:

==26642== Memcheck, a memory error detector.
==26642== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==26642== Using LibVEX rev 1854, a library for dynamic binary translation.
==26642== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==26642== Using valgrind-3.3.1, a dynamic binary instrumentation framework.
==26642== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==26642== For more details, rerun with: -v
==26642== 
==26642== My PID = 26642, parent PID = 20102.  Prog and args are:
==26642==    kdevelop
==26642== 
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x4FF8FFE: QFSFileEngine::fileName(QAbstractFileEngine::FileName) const (qfsfileengine_unix.cpp:760)
==26642==    by 0x4FBE178: QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName) const (qfileinfo.cpp:197)
==26642==    by 0x4FBE253: QFileInfo::readLink() const (qfileinfo.cpp:1130)
==26642==    by 0x4FB93D1: QFile::readLink(QString const&) (qfile.cpp:628)
==26642==    by 0x62334DD: QFile::symLinkTarget(QString const&) (qfile.h:124)
==26642==    by 0x62327DB: _k_resolveSymLink(QString const&) (halfstabhandling.cpp:49)
==26642==    by 0x6232AAE: _k_updateMountPointsCache() (halfstabhandling.cpp:121)
==26642==    by 0x6232BA1: Solid::Backends::Hal::FstabHandling::possibleMountPoints(QString const&) (halfstabhandling.cpp:141)
==26642==    by 0x623FBA0: Solid::Backends::Hal::StorageAccess::filePath() const (halstorageaccess.cpp:85)
==26642==    by 0x6241C4E: Solid::Backends::Hal::Volume::isIgnored() const (halvolume.cpp:48)
==26642==    by 0x62098B5: Solid::StorageVolume::isIgnored() const (storagevolume.cpp:45)
==26642==    by 0x620994B: Solid::StorageVolume::qt_metacall(QMetaObject::Call, int, void**) (storagevolume.moc:88)
==26642== 
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x5459DE6: _ZL11PtsToRegioniiP11_POINTBLOCKP14QRegionPrivate (qregion.cpp:3353)
==26642==    by 0x545AAD3: _ZL13PolygonRegionPK6QPointii (qregion.cpp:3560)
==26642==    by 0x545ABE4: QRegion::QRegion(QPolygon const&, Qt::FillRule) (qregion.cpp:3689)
==26642==    by 0x54EFB7D: QX11PaintEngine::updateState(QPaintEngineState const&) (qpaintengine_x11.cpp:1048)
==26642==    by 0x54069F7: QPainterPrivate::updateStateImpl(QPainterState*) (qpainter.cpp:891)
==26642==    by 0x5406BE2: QPainterPrivate::updateState(QPainterState*) (qpainter.cpp:919)
==26642==    by 0x5407C60: QPainter::setClipRegion(QRegion const&, Qt::ClipOperation) (qpainter.cpp:2654)
==26642==    by 0x5787474: QMenu::paintEvent(QPaintEvent*) (qmenu.cpp:2163)
==26642==    by 0x53313C2: QWidget::event(QEvent*) (qwidget.cpp:7649)
==26642==    by 0x578D00E: QMenu::event(QEvent*) (qmenu.cpp:2346)
==26642==    by 0x52CFF1C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4051)
==26642==    by 0x52D1DD6: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4016)
==26642== 
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x5459DE6: _ZL11PtsToRegioniiP11_POINTBLOCKP14QRegionPrivate (qregion.cpp:3353)
==26642==    by 0x545AAD3: _ZL13PolygonRegionPK6QPointii (qregion.cpp:3560)
==26642==    by 0x545ABE4: QRegion::QRegion(QPolygon const&, Qt::FillRule) (qregion.cpp:3689)
==26642==    by 0x54EFEF4: QX11PaintEngine::updateState(QPaintEngineState const&) (qpaintengine_x11.cpp:1066)
==26642==    by 0x54069F7: QPainterPrivate::updateStateImpl(QPainterState*) (qpainter.cpp:891)
==26642==    by 0x5406BE2: QPainterPrivate::updateState(QPainterState*) (qpainter.cpp:919)
==26642==    by 0x5407C60: QPainter::setClipRegion(QRegion const&, Qt::ClipOperation) (qpainter.cpp:2654)
==26642==    by 0x5787474: QMenu::paintEvent(QPaintEvent*) (qmenu.cpp:2163)
==26642==    by 0x53313C2: QWidget::event(QEvent*) (qwidget.cpp:7649)
==26642==    by 0x578D00E: QMenu::event(QEvent*) (qmenu.cpp:2346)
==26642==    by 0x52CFF1C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4051)
==26642==    by 0x52D1DD6: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4016)
==26642== 
==26642== Thread 3:
==26642== Syscall param write(buf) points to uninitialised byte(s)
==26642==    at 0x4000832: (within /lib/ld-2.9.so)
==26642==    by 0x5C4ADE2: (within /lib/libc-2.9.so)
==26642==    by 0x5C4B0E5: _IO_do_write (in /lib/libc-2.9.so)
==26642==    by 0x5C4BB79: _IO_file_sync (in /lib/libc-2.9.so)
==26642==    by 0x5C3F5D5: fflush (in /lib/libc-2.9.so)
==26642==    by 0x4FF2D4A: QFSFileEnginePrivate::flushFh() (qfsfileengine.cpp:454)
==26642==    by 0x4FFACE8: QFSFileEnginePrivate::nativeFlush() (qfsfileengine_unix.cpp:238)
==26642==    by 0x4FF2E42: QFSFileEngine::flush() (qfsfileengine.cpp:439)
==26642==    by 0x4FB9A5F: QFile::flush() (qfile.cpp:1338)
==26642==    by 0x4FBCFD6: QFilePrivate::ensureFlushed() const (qfile.cpp:136)
==26642==    by 0x4FB9CE0: QFile::size() const (qfile.cpp:1378)
==26642==    by 0x5FDF31F: KDevelop::TopDUContextDynamicData::store() (topducontextdynamicdata.cpp:486)
==26642==  Address 0x5101081 is not stack'd, malloc'd or (recently) free'd
==26642== 
==26642== Thread 4:
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x10208E36: CMakeProjectVisitor::visit(GetCMakePropertyAst const*) (cmakeprojectvisitor.cpp:1691)
==26642==    by 0x101FFE5E: GetCMakePropertyAst::accept(CMakeAstVisitor*) const (cmakeast.h:409)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x10219625: CMakeProjectVisitor::visit(IncludeAst const*) (cmakeprojectvisitor.cpp:467)
==26642==    by 0x101FFF52: IncludeAst::accept(CMakeAstVisitor*) const (cmakeast.h:457)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642== 
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x10208E40: CMakeProjectVisitor::visit(GetCMakePropertyAst const*) (cmakeprojectvisitor.cpp:1691)
==26642==    by 0x101FFE5E: GetCMakePropertyAst::accept(CMakeAstVisitor*) const (cmakeast.h:409)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x10219625: CMakeProjectVisitor::visit(IncludeAst const*) (cmakeprojectvisitor.cpp:467)
==26642==    by 0x101FFF52: IncludeAst::accept(CMakeAstVisitor*) const (cmakeast.h:457)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642== 
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x10208E46: CMakeProjectVisitor::visit(GetCMakePropertyAst const*) (cmakeprojectvisitor.cpp:1691)
==26642==    by 0x101FFE5E: GetCMakePropertyAst::accept(CMakeAstVisitor*) const (cmakeast.h:409)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642==    by 0x10219625: CMakeProjectVisitor::visit(IncludeAst const*) (cmakeprojectvisitor.cpp:467)
==26642==    by 0x101FFF52: IncludeAst::accept(CMakeAstVisitor*) const (cmakeast.h:457)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642== 
==26642== Thread 1:
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x5D43449: (within /lib/libz.so.1.2.3)
==26642==    by 0x5D43CEE: (within /lib/libz.so.1.2.3)
==26642==    by 0x5D447EC: deflate (in /lib/libz.so.1.2.3)
==26642==    by 0x5D40F37: compress2 (in /lib/libz.so.1.2.3)
==26642==    by 0x4F3012E: qCompress(unsigned char const*, int, int) (qbytearray.cpp:463)
==26642==    by 0x4D2BF20: KPixmapCache::Private::writeData(QString const&, QPixmap const&) (kpixmapcache.cpp:1435)
==26642==    by 0x4D2C9AE: KPixmapCache::insert(QString const&, QPixmap const&) (kpixmapcache.cpp:1400)
==26642==    by 0x4C7B208: KIconCache::insert(QString const&, QPixmap const&) (kiconcache.cpp:298)
==26642==    by 0x4C7B1C5: KIconCache::insert(QString const&, QPixmap const&, QString const&) (kiconcache.cpp:285)
==26642==    by 0x4C702A0: KIconLoader::loadIcon(QString const&, KIconLoader::Group, int, int, QStringList const&, QString*, bool) const (kiconloader.cpp:1320)
==26642==    by 0x4C69AEB: KIconEngine::pixmap(QSize const&, QIcon::Mode, QIcon::State) (kiconengine.cpp:119)
==26642==    by 0x537FBCA: QIcon::pixmap(QSize const&, QIcon::Mode, QIcon::State) const (qicon.cpp:708)
==26642== 
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x5D4340D: (within /lib/libz.so.1.2.3)
==26642==    by 0x5D43CEE: (within /lib/libz.so.1.2.3)
==26642==    by 0x5D447EC: deflate (in /lib/libz.so.1.2.3)
==26642==    by 0x5D40F37: compress2 (in /lib/libz.so.1.2.3)
==26642==    by 0x4F3012E: qCompress(unsigned char const*, int, int) (qbytearray.cpp:463)
==26642==    by 0x4D2BF20: KPixmapCache::Private::writeData(QString const&, QPixmap const&) (kpixmapcache.cpp:1435)
==26642==    by 0x4D2C9AE: KPixmapCache::insert(QString const&, QPixmap const&) (kpixmapcache.cpp:1400)
==26642==    by 0x4C7B208: KIconCache::insert(QString const&, QPixmap const&) (kiconcache.cpp:298)
==26642==    by 0x4C7B1C5: KIconCache::insert(QString const&, QPixmap const&, QString const&) (kiconcache.cpp:285)
==26642==    by 0x4C702A0: KIconLoader::loadIcon(QString const&, KIconLoader::Group, int, int, QStringList const&, QString*, bool) const (kiconloader.cpp:1320)
==26642==    by 0x4C69AEB: KIconEngine::pixmap(QSize const&, QIcon::Mode, QIcon::State) (kiconengine.cpp:119)
==26642==    by 0x537FBCA: QIcon::pixmap(QSize const&, QIcon::Mode, QIcon::State) const (qicon.cpp:708)
==26642== 
==26642== Thread 3:
==26642== Syscall param write(buf) points to uninitialised byte(s)
==26642==    at 0x4000832: (within /lib/ld-2.9.so)
==26642==    by 0x5C4ADE2: (within /lib/libc-2.9.so)
==26642==    by 0x5C4B07D: _IO_file_xsputn (in /lib/libc-2.9.so)
==26642==    by 0x5C407C9: fwrite (in /lib/libc-2.9.so)
==26642==    by 0x4FF1DD7: QFSFileEnginePrivate::writeFdFh(char const*, long long) (qfsfileengine.cpp:753)
==26642==    by 0x4FFA915: QFSFileEnginePrivate::nativeWrite(char const*, long long) (qfsfileengine_unix.cpp:318)
==26642==    by 0x4FF1FE0: QFSFileEngine::write(char const*, long long) (qfsfileengine.cpp:734)
==26642==    by 0x4FB9FD3: QFile::writeData(char const*, long long) (qfile.cpp:1573)
==26642==    by 0x4FC0EA6: QIODevice::write(char const*, long long) (qiodevice.cpp:1261)
==26642==    by 0x602357D: KDevelop::Bucket<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, 0>::store(QFile*, unsigned) (itemrepository.h:342)
==26642==    by 0x6023637: KDevelop::ItemRepository<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, true, 0, 524288>::storeBucket(unsigned) const (itemrepository.h:2180)
==26642==    by 0x6023785: KDevelop::ItemRepository<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, true, 0, 524288>::store() (itemrepository.h:1779)
==26642==  Address 0xcf99699 is 21,473 bytes inside a block of size 65,536 alloc'd
==26642==    at 0x402710E: operator new[](unsigned) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==26642==    by 0x6022083: KDevelop::Bucket<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, 0>::initialize(unsigned) (itemrepository.h:291)
==26642==    by 0x6022202: KDevelop::Bucket<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, 0>::initialize(QFile*, unsigned) (itemrepository.h:310)
==26642==    by 0x6022470: KDevelop::ItemRepository<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, true, 0, 524288>::initializeBucket(unsigned) const (itemrepository.h:2159)
==26642==    by 0x6022D37: KDevelop::ItemRepository<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, true, 0, 524288>::findIndex(KDevelop::UsesRequestItem const&) (itemrepository.h:1402)
==26642==    by 0x601FE9D: KDevelop::Uses::addUse(KDevelop::DeclarationId const&, KDevelop::IndexedTopDUContext const&) (uses.cpp:122)
==26642==    by 0x5FCD8A6: KDevelop::TopDUContext::indexForUsedDeclaration(KDevelop::Declaration*, bool) (topducontext.cpp:1535)
==26642==    by 0x10213962: CMakeProjectVisitor::createUses(CMakeFunctionDesc const&) (cmakeprojectvisitor.cpp:1969)
==26642==    by 0x1021556A: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1888)
==26642==    by 0x1021A362: CMakeProjectVisitor::visit(IfAst const*) (cmakeprojectvisitor.cpp:1123)
==26642==    by 0x101FFF30: IfAst::accept(CMakeAstVisitor*) const (cmakeast.h:451)
==26642==    by 0x10215932: CMakeProjectVisitor::walk(QList<CMakeFunctionDesc> const&, int) (cmakeprojectvisitor.cpp:1915)
==26642== 
==26642== Syscall param write(buf) points to uninitialised byte(s)
==26642==    at 0x4000832: (within /lib/ld-2.9.so)
==26642==    by 0x5C4ADE2: (within /lib/libc-2.9.so)
==26642==    by 0x5C4B0E5: _IO_do_write (in /lib/libc-2.9.so)
==26642==    by 0x5C4BCAF: _IO_file_overflow (in /lib/libc-2.9.so)
==26642==    by 0x5C4AF1C: _IO_file_xsputn (in /lib/libc-2.9.so)
==26642==    by 0x5C407C9: fwrite (in /lib/libc-2.9.so)
==26642==    by 0x4FF1DD7: QFSFileEnginePrivate::writeFdFh(char const*, long long) (qfsfileengine.cpp:753)
==26642==    by 0x4FFA915: QFSFileEnginePrivate::nativeWrite(char const*, long long) (qfsfileengine_unix.cpp:318)
==26642==    by 0x4FF1FE0: QFSFileEngine::write(char const*, long long) (qfsfileengine.cpp:734)
==26642==    by 0x4FB9FD3: QFile::writeData(char const*, long long) (qfile.cpp:1573)
==26642==    by 0x4FC0EA6: QIODevice::write(char const*, long long) (qiodevice.cpp:1261)
==26642==    by 0x602357D: KDevelop::Bucket<KDevelop::UsesItem, KDevelop::UsesRequestItem, KDevelop::NoDynamicData, 0>::store(QFile*, unsigned) (itemrepository.h:342)
==26642==  Address 0x51017e1 is not stack'd, malloc'd or (recently) free'd
==26642== 
==26642== Thread 1:
==26642== Conditional jump or move depends on uninitialised value(s)
==26642==    at 0x649203D: FT_Set_Charmap (in /usr/lib/libfreetype.so.6.3.18)
==26642==    by 0x55DCD20: QFontEngineFT::stringToCMap(QChar const*, int, QGlyphLayout*, int*, QFlags<QTextEngine::ShaperFlag>) const (qfontengine_ft.cpp:1521)
==26642==    by 0x550E46D: QFontEngineMulti::stringToCMap(QChar const*, int, QGlyphLayout*, int*, QFlags<QTextEngine::ShaperFlag>) const (qfontengine.cpp:1290)
==26642==    by 0x553E9D6: _ZL14stringToGlyphsP13HB_ShaperItemP12QGlyphLayoutP11QFontEngine (qtextengine.cpp:818)
==26642==    by 0x55424FE: QTextEngine::shapeTextWithHarfbuzz(int) const (qtextengine.cpp:1143)
==26642==    by 0x5542E39: QTextEngine::shapeText(int) const (qtextengine.cpp:867)
==26642==    by 0x5543398: QTextEngine::shape(int) const (qtextengine.cpp:1334)
==26642==    by 0x554BBBF: QTextLine::layout_helper(int) (qtextlayout.cpp:1636)
==26642==    by 0x554CB29: QTextLine::setLineWidth(double) (qtextlayout.cpp:1510)
==26642==    by 0x558CDA0: QTextDocumentLayoutPrivate::layoutBlock(QTextBlock const&, int, QTextBlockFormat const&, QLayoutStruct*, int, int, QTextBlockFormat const*) (qtextdocumentlayout.cpp:2580)
==26642==    by 0x558F03B: QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::iterator, QLayoutStruct*, int, int, QFixed) (qtextdocumentlayout.cpp:2383)
==26642==    by 0x5593912: QTextDocumentLayoutPrivate::layoutFrame(QTextFrame*, int, int, QFixed, QFixed, QFixed) (qtextdocumentlayout.cpp:2128)
==26642== 
==26642== Invalid read of size 4
==26642==    at 0x5035C63: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2416)
==26642==    by 0x40F8DC2: QObject::connect(QObject const*, char const*, char const*, Qt::ConnectionType) const (qobject.h:303)
==26642==    by 0x41066E9: KCompositeJob::addSubjob(KJob*) (kcompositejob.cpp:57)
==26642==    by 0x10256BD8: BuilderJob::addJob(BuilderJob::BuildType, KDevelop::ProjectBaseItem*) (builderjob.cpp:61)
==26642==    by 0x10257027: BuilderJob::BuilderJob(BuilderJob::BuildType, QList<BuildItem> const&) (builderjob.cpp:70)
==26642==    by 0x10245452: ProjectManagerViewPlugin::runBuilderJob(BuilderJob::BuildType) (projectmanagerviewplugin.cpp:361)
==26642==    by 0x10245576: ProjectManagerViewPlugin::buildProjectItems() (projectmanagerviewplugin.cpp:391)
==26642==    by 0x10247047: ProjectManagerViewPlugin::qt_metacall(QMetaObject::Call, int, void**) (projectmanagerviewplugin.moc:105)
==26642==    by 0x503462A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3061)
==26642==    by 0x503485B: QMetaObject::activate(QObject*, QMetaObject const*, int, int, void**) (qobject.cpp:3156)
==26642==    by 0x52C7D59: QAction::triggered(bool) (moc_qaction.cpp:236)
==26642==    by 0x52C9A67: QAction::activate(QAction::ActionEvent) (qaction.cpp:1155)
==26642==  Address 0x9fe3300 is 0 bytes inside a block of size 92 free'd
==26642==    at 0x402679A: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==26642==    by 0xFFF9599: MakeJob::~MakeJob() (makejob.h:41)
==26642==    by 0x4106CC0: void qDeleteAll<QList<KJob*>::const_iterator>(QList<KJob*>::const_iterator, QList<KJob*>::const_iterator) (qalgorithms.h:345)
==26642==    by 0x4106D25: void qDeleteAll<QList<KJob*> >(QList<KJob*> const&) (qalgorithms.h:353)
==26642==    by 0x41068BB: KCompositeJobPrivate::~KCompositeJobPrivate() (kcompositejob.cpp:29)
==26642==    by 0x4108803: KJob::~KJob() (kjob.cpp:69)
==26642==    by 0x41067F2: KCompositeJob::~KCompositeJob() (kcompositejob.cpp:44)
==26642==    by 0x1025722F: BuilderJob::~BuilderJob() (builderjob.h:39)
==26642==    by 0x502DF96: qDeleteInEventHandler(QObject*) (qobject.cpp:3764)
==26642==    by 0x503246B: QObject::event(QEvent*) (qobject.cpp:1096)
==26642==    by 0x52CFF1C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4051)
==26642==    by 0x52D0271: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3598)
==26642== 
==26642== Invalid read of size 4
==26642==    at 0x5030415: _ZL19err_method_notfoundPK7QObjectPKcS3_ (qobject.cpp:2210)
==26642==    by 0x5035D17: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2427)
==26642==    by 0x40F8DC2: QObject::connect(QObject const*, char const*, char const*, Qt::ConnectionType) const (qobject.h:303)
==26642==    by 0x41066E9: KCompositeJob::addSubjob(KJob*) (kcompositejob.cpp:57)
==26642==    by 0x10256BD8: BuilderJob::addJob(BuilderJob::BuildType, KDevelop::ProjectBaseItem*) (builderjob.cpp:61)
==26642==    by 0x10257027: BuilderJob::BuilderJob(BuilderJob::BuildType, QList<BuildItem> const&) (builderjob.cpp:70)
==26642==    by 0x10245452: ProjectManagerViewPlugin::runBuilderJob(BuilderJob::BuildType) (projectmanagerviewplugin.cpp:361)
==26642==    by 0x10245576: ProjectManagerViewPlugin::buildProjectItems() (projectmanagerviewplugin.cpp:391)
==26642==    by 0x10247047: ProjectManagerViewPlugin::qt_metacall(QMetaObject::Call, int, void**) (projectmanagerviewplugin.moc:105)
==26642==    by 0x503462A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3061)
==26642==    by 0x503485B: QMetaObject::activate(QObject*, QMetaObject const*, int, int, void**) (qobject.cpp:3156)
==26642==    by 0x52C7D59: QAction::triggered(bool) (moc_qaction.cpp:236)
==26642==  Address 0x9fe3300 is 0 bytes inside a block of size 92 free'd
==26642==    at 0x402679A: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==26642==    by 0xFFF9599: MakeJob::~MakeJob() (makejob.h:41)
==26642==    by 0x4106CC0: void qDeleteAll<QList<KJob*>::const_iterator>(QList<KJob*>::const_iterator, QList<KJob*>::const_iterator) (qalgorithms.h:345)
==26642==    by 0x4106D25: void qDeleteAll<QList<KJob*> >(QList<KJob*> const&) (qalgorithms.h:353)
==26642==    by 0x41068BB: KCompositeJobPrivate::~KCompositeJobPrivate() (kcompositejob.cpp:29)
==26642==    by 0x4108803: KJob::~KJob() (kjob.cpp:69)
==26642==    by 0x41067F2: KCompositeJob::~KCompositeJob() (kcompositejob.cpp:44)
==26642==    by 0x1025722F: BuilderJob::~BuilderJob() (builderjob.h:39)
==26642==    by 0x502DF96: qDeleteInEventHandler(QObject*) (qobject.cpp:3764)
==26642==    by 0x503246B: QObject::event(QEvent*) (qobject.cpp:1096)
==26642==    by 0x52CFF1C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4051)
==26642==    by 0x52D0271: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3598)
==26642== 
==26642== Invalid read of size 4
==26642==    at 0x5036172: QObject::d_func() const (qobject.h:113)
==26642==    by 0x502ED98: QObject::objectName() const (qobject.cpp:980)
==26642==    by 0x502F658: _ZL22err_info_about_objectsPKcPK7QObjectS3_ (qobject.cpp:2219)
==26642==    by 0x5035D33: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2428)
==26642==    by 0x40F8DC2: QObject::connect(QObject const*, char const*, char const*, Qt::ConnectionType) const (qobject.h:303)
==26642==    by 0x41066E9: KCompositeJob::addSubjob(KJob*) (kcompositejob.cpp:57)
==26642==    by 0x10256BD8: BuilderJob::addJob(BuilderJob::BuildType, KDevelop::ProjectBaseItem*) (builderjob.cpp:61)
==26642==    by 0x10257027: BuilderJob::BuilderJob(BuilderJob::BuildType, QList<BuildItem> const&) (builderjob.cpp:70)
==26642==    by 0x10245452: ProjectManagerViewPlugin::runBuilderJob(BuilderJob::BuildType) (projectmanagerviewplugin.cpp:361)
==26642==    by 0x10245576: ProjectManagerViewPlugin::buildProjectItems() (projectmanagerviewplugin.cpp:391)
==26642==    by 0x10247047: ProjectManagerViewPlugin::qt_metacall(QMetaObject::Call, int, void**) (projectmanagerviewplugin.moc:105)
==26642==    by 0x503462A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3061)
==26642==  Address 0x9fe3304 is 4 bytes inside a block of size 92 free'd
==26642==    at 0x402679A: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==26642==    by 0xFFF9599: MakeJob::~MakeJob() (makejob.h:41)
==26642==    by 0x4106CC0: void qDeleteAll<QList<KJob*>::const_iterator>(QList<KJob*>::const_iterator, QList<KJob*>::const_iterator) (qalgorithms.h:345)
==26642==    by 0x4106D25: void qDeleteAll<QList<KJob*> >(QList<KJob*> const&) (qalgorithms.h:353)
==26642==    by 0x41068BB: KCompositeJobPrivate::~KCompositeJobPrivate() (kcompositejob.cpp:29)
==26642==    by 0x4108803: KJob::~KJob() (kjob.cpp:69)
==26642==    by 0x41067F2: KCompositeJob::~KCompositeJob() (kcompositejob.cpp:44)
==26642==    by 0x1025722F: BuilderJob::~BuilderJob() (builderjob.h:39)
==26642==    by 0x502DF96: qDeleteInEventHandler(QObject*) (qobject.cpp:3764)
==26642==    by 0x503246B: QObject::event(QEvent*) (qobject.cpp:1096)
==26642==    by 0x52CFF1C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4051)
==26642==    by 0x52D0271: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3598)
==26642== 
==26642== Invalid read of size 4
==26642==    at 0x4F1813F: QString::QString(QString const&) (qstring.h:706)
==26642==    by 0x502EDAF: QObject::objectName() const (qobject.cpp:981)
==26642==    by 0x502F658: _ZL22err_info_about_objectsPKcPK7QObjectS3_ (qobject.cpp:2219)
==26642==    by 0x5035D33: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2428)
==26642==    by 0x40F8DC2: QObject::connect(QObject const*, char const*, char const*, Qt::ConnectionType) const (qobject.h:303)
==26642==    by 0x41066E9: KCompositeJob::addSubjob(KJob*) (kcompositejob.cpp:57)
==26642==    by 0x10256BD8: BuilderJob::addJob(BuilderJob::BuildType, KDevelop::ProjectBaseItem*) (builderjob.cpp:61)
==26642==    by 0x10257027: BuilderJob::BuilderJob(BuilderJob::BuildType, QList<BuildItem> const&) (builderjob.cpp:70)
==26642==    by 0x10245452: ProjectManagerViewPlugin::runBuilderJob(BuilderJob::BuildType) (projectmanagerviewplugin.cpp:361)
==26642==    by 0x10245576: ProjectManagerViewPlugin::buildProjectItems() (projectmanagerviewplugin.cpp:391)
==26642==    by 0x10247047: ProjectManagerViewPlugin::qt_metacall(QMetaObject::Call, int, void**) (projectmanagerviewplugin.moc:105)
==26642==    by 0x503462A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3061)
==26642==  Address 0x34 is not stack'd, malloc'd or (recently) free'd
==26642== Warning: invalid file descriptor -1 in syscall write()
==26642== Warning: invalid file descriptor -1 in syscall write()
==26642== Warning: invalid file descriptor -1 in syscall read()
Comment 4 Andreas Pakulat 2009-02-27 00:37:09 UTC
Hmm, I might have been wrong about this one. The valgrind log looks suspiciously like a too-early-deleted job problem.
Comment 5 Thorben Kröger 2009-02-27 00:40:16 UTC
This seems to be somewhat reproducible:

"Add two targets, hit F8 to build them, abort while still building, then
immediately hit F8 again."

I often realize there is still a syntax error while the build is already
happening, so I re-hit F8. Maybe that is why I saw this crash several times
today?

Note:
I'm running kdelibs from trunk.
qt-copy with patches applied
Comment 6 Andreas Pakulat 2009-02-27 23:37:36 UTC
SVN commit 933075 by apaku:

Don't try to re-use kjob's, thats not going to work.
No need to keep track of the jobs now anymore, so remove the member.
BUG:185640

 M  +1 -8      makebuilder.cpp  
 M  +0 -1      makebuilder.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=933075