<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>254261</bug_id>
          
          <creation_ts>2010-10-15 14:29:03 +0000</creation_ts>
          <short_desc>Crash on startup when opening session with two projects</short_desc>
          <delta_ts>2010-11-25 21:09:02 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>kdevelop</product>
          <component>general</component>
          <version>4.0.90</version>
          <rep_platform>Ubuntu</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>crash</bug_severity>
          <target_milestone>4.1.0</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>ce</reporter>
          <assigned_to>kdevelop-bugs-null</assigned_to>
          <cc>ab4bd</cc>
    
    <cc>cordlandwehr</cc>
    
    <cc>gotletter</cc>
    
    <cc>jimmy</cc>
    
    <cc>markus.hauser</cc>
    
    <cc>niko.sams</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032552</commentid>
    <comment_count>0</comment_count>
    <who name="">ce</who>
    <bug_when>2010-10-15 14:29:03 +0000</bug_when>
    <thetext>Application: kdevelop (4.0.90)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-25-generic i686
Distribution: Ubuntu 10.04.1 LTS

-- Information about the crash:
most recent git version from 4.1/1.1 branch with kde 4.4.

Happens with different sessions.

The crash can be reproduced every time.

 -- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault
[Current thread is 1 (Thread 0xb77f4710 (LWP 1857))]

Thread 3 (Thread 0xb5860b70 (LWP 1858)):
#0  0x00b9a422 in __kernel_vsyscall ()
#1  0x007cf342 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x0374c20f in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#3  0x017721e8 in KDevelop::DUChainPrivate::CleanupThread::run (this=0xa1f4308) at /home/christoph/kdesvn/git/kdevplatform/language/duchain/duchain.cpp:286
#4  0x0374b32e in ?? () from /usr/lib/libQtCore.so.4
#5  0x007ca96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6  0x00ad4a4e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread 0xb43f9b70 (LWP 1868)):
#0  0x00b9a422 in __kernel_vsyscall ()
#1  0x00ac6b86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2  0x09dcd4eb in g_poll () from /lib/libglib-2.0.so.0
#3  0x09dc00ac in ?? () from /lib/libglib-2.0.so.0
#4  0x09dc04b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0x0387960f in QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#6  0x0384c059 in QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#7  0x0384c4aa in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#8  0x037485a8 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0x0188a427 in KDevelop::CompletionWorkerThread::run (this=0xa34e550) at /home/christoph/kdesvn/git/kdevplatform/language/codecompletion/codecompletionmodel.cpp:81
#10 0x0374b32e in ?? () from /usr/lib/libQtCore.so.4
#11 0x007ca96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#12 0x00ad4a4e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb77f4710 (LWP 1857)):
[KCrash Handler]
#5  0x03801bd9 in QUrl::fragment() const () from /usr/lib/libQtCore.so.4
#6  0x00e05505 in KUrl::hasSubUrl() const () from /usr/lib/libkdecore.so.5
#7  0x001e2ac5 in ?? () from /usr/lib/libkio.so.5
#8  0x001d60ea in KIO::listDir(KUrl const&amp;, QFlags&lt;KIO::JobFlag&gt;, bool) () from /usr/lib/libkio.so.5
#9  0x080267c1 in GenericManagerListJob::startNextJob (this=0xa2d7e98) at /home/christoph/kdesvn/git/kdevplatform/plugins/genericprojectmanager/genericmanagerlistjob.cpp:61
#10 0x08026baf in GenericManagerListJob::qt_metacall (this=0xa2d7e98, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xa44b9e8)
    at /home/christoph/kdesvn/build/git/kdevplatform/plugins/genericprojectmanager/genericmanagerlistjob.moc:93
#11 0x03852c9a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#12 0x0385d336 in QMetaCallEvent::placeMetaCall(QObject*) () from /usr/lib/libQtCore.so.4
#13 0x0385e3fe in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#14 0x026474dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#15 0x0264e05e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x04517f2a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#17 0x0384da3b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#18 0x03850473 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#19 0x038505dd in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4
#20 0x03879adf in ?? () from /usr/lib/libQtCore.so.4
#21 0x09dbc5e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#22 0x09dc02d8 in ?? () from /lib/libglib-2.0.so.0
#23 0x09dc04b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#24 0x038795d5 in QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#25 0x02707135 in ?? () from /usr/lib/libQtGui.so.4
#26 0x0384c059 in QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#27 0x0384c4aa in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#28 0x0385069f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#29 0x02647577 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#30 0x08050b9d in main (argc=1, argv=0xbfb1b7a4) at /home/christoph/kdesvn/git/kdevelop/app/main.cpp:380

Possible duplicates by query: bug 224337, bug 223664, bug 215175, bug 214569.

Reported using DrKonqi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032820</commentid>
    <comment_count>1</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-10-16 05:16:16 +0000</bug_when>
    <thetext>please run kdev through valgrind and show me the output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033778</commentid>
    <comment_count>2</comment_count>
    <who name="">ce</who>
    <bug_when>2010-10-18 14:01:58 +0000</bug_when>
    <thetext>valgrind log as requested:

kdevelop(4179)/kdevplatform (genericprojectmanager) GenericProjectManager::addJobItems: reading entries of KUrl(&quot;file:///home/christoph/www/vps/views/&quot;)
kdevelop(4179)/kdevplatform (genericprojectmanager) GenericProjectManager::addJobItems: reading entries of KUrl(&quot;file:///home/christoph/www/unicope/Vpc/Unicope/&quot;)
==4179== Invalid read of size 4
==4179==    at 0x671D15D: KDevelop::ProjectBaseItem::d_func() const (projectmodel.h:205)
==4179==    by 0x67198CC: KDevelop::ProjectBaseItem::url() const (projectmodel.cpp:353)
==4179==    by 0xDCE07A3: GenericManagerListJob::startNextJob() (genericmanagerlistjob.cpp:61)
==4179==    by 0xDCE0BAE: GenericManagerListJob::qt_metacall(QMetaObject::Call, int, void**) (genericmanagerlistjob.moc:93)
==4179==    by 0x5512C99: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x551D335: QMetaCallEvent::placeMetaCall(QObject*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x551E3FD: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x57714DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x577805D: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x5154F29: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdeui.so.5.4.0)
==4179==    by 0x550DA3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x5510472: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==  Address 0xc0185b4 is 0 bytes after a block of size 4 free&apos;d
==4179==    at 0x4024851: operator delete(void*) (vg_replace_malloc.c:387)
==4179==    by 0x58FAB9E: ??? (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x58FABE6: ??? (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x58F8533: QPainterPath::toFillPolygon(QTransform const&amp;) const (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x58F8641: QPainterPath::toFillPolygon(QMatrix const&amp;) const (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x59A030B: ??? (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x58DC6F3: ??? (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x58DC7BB: ??? (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x58E2DC3: QPainter::setClipRegion(QRegion const&amp;, Qt::ClipOperation) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x57D7F26: QWidgetPrivate::paintBackground(QPainter*, QRegion const&amp;, int) const (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x57D8EDC: QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&amp;, QPoint const&amp;, int, QPainter*, QWidgetBackingStore*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x59AF88F: ??? (in /usr/lib/libQtGui.so.4.6.2)
==4179== 
==4179== Invalid read of size 4
==4179==    at 0x54BB919: QUrl::QUrl(QUrl const&amp;) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x4117EA8: KUrl::KUrl(KUrl const&amp;) (in /usr/lib/libkdecore.so.5.4.0)
==4179==    by 0x67198E3: KDevelop::ProjectBaseItem::url() const (projectmodel.cpp:354)
==4179==    by 0xDCE07A3: GenericManagerListJob::startNextJob() (genericmanagerlistjob.cpp:61)
==4179==    by 0xDCE0BAE: GenericManagerListJob::qt_metacall(QMetaObject::Call, int, void**) (genericmanagerlistjob.moc:93)
==4179==    by 0x5512C99: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x551D335: QMetaCallEvent::placeMetaCall(QObject*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x551E3FD: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x57714DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x577805D: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x5154F29: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdeui.so.5.4.0)
==4179==    by 0x550DA3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==  Address 0xc018658 is 32 bytes inside a block of size 64 free&apos;d
==4179==    at 0x4024B3A: free (vg_replace_malloc.c:366)
==4179==    by 0x5405A5C: qFree(void*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x54C85F2: ??? (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x54BE2A7: QUrl::~QUrl() (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x4117F1C: KUrl::~KUrl() (in /usr/lib/libkdecore.so.5.4.0)
==4179==    by 0xDCE8BF9: QList&lt;KUrl&gt;::node_destruct(QList&lt;KUrl&gt;::Node*, QList&lt;KUrl&gt;::Node*) (qlist.h:402)
==4179==    by 0xDCE7BA1: QList&lt;KUrl&gt;::free(QListData::Data*) (qlist.h:646)
==4179==    by 0xDCE66E2: QList&lt;KUrl&gt;::~QList() (qlist.h:621)
==4179==    by 0xDCE64CC: KUrl::List::~List() (kurl.h:126)
==4179==    by 0xDCE3C16: GenericProjectManager::addJobItems(KDevelop::ProjectFolderItem*, QList&lt;KIO::UDSEntry&gt; const&amp;, bool) (genericmanager.cpp:273)
==4179==    by 0xDCE5DE2: GenericProjectManager::qt_metacall(QMetaObject::Call, int, void**) (genericmanager.moc:103)
==4179==    by 0x5512C99: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==4179== 
==4179== Invalid read of size 4
==4179==    at 0x54BB921: QUrl::QUrl(QUrl const&amp;) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x4117EA8: KUrl::KUrl(KUrl const&amp;) (in /usr/lib/libkdecore.so.5.4.0)
==4179==    by 0x67198E3: KDevelop::ProjectBaseItem::url() const (projectmodel.cpp:354)
==4179==    by 0xDCE07A3: GenericManagerListJob::startNextJob() (genericmanagerlistjob.cpp:61)
==4179==    by 0xDCE0BAE: GenericManagerListJob::qt_metacall(QMetaObject::Call, int, void**) (genericmanagerlistjob.moc:93)
==4179==    by 0x5512C99: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x551D335: QMetaCallEvent::placeMetaCall(QObject*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x551E3FD: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==    by 0x57714DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x577805D: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.6.2)
==4179==    by 0x5154F29: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdeui.so.5.4.0)
==4179==    by 0x550DA3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.6.2)
==4179==  Address 0x2f777777 is not stack&apos;d, malloc&apos;d or (recently) free&apos;d
==4179== 
KCrash: Application &apos;kdevelop&apos; crashing...
sock_file=/home/christoph/.kde4-svn/socket-christoph-linux/kdeinit4__0
Warning: connect() failed: : No such file or directory
==4179== Warning: invalid file descriptor -1 in syscall write()
==4179== Warning: invalid file descriptor -1 in syscall write()
==4179== Warning: invalid file descriptor -1 in syscall read()
KCrash cannot reach kdeinit, launching directly.

[1]+  Stopped                 valgrind kdevelop -s unicope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034178</commentid>
    <comment_count>3</comment_count>
    <who name="Niko Sams">niko.sams</who>
    <bug_when>2010-10-19 14:15:01 +0000</bug_when>
    <thetext>Milian, do you have any idea what&apos;s the problem here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034222</commentid>
    <comment_count>4</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-10-19 15:28:14 +0000</bug_when>
    <thetext>no not yet, but it looks like a reference got stored in the project item, but the referenced item got deleted when the context was exited...

have to double check that though to make sure...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035254</commentid>
    <comment_count>5</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-10-21 20:30:59 +0000</bug_when>
    <thetext>*** Bug 254834 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035255</commentid>
    <comment_count>6</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-10-21 20:32:24 +0000</bug_when>
    <thetext>related / duplicate of bug 224337 - but keeping open for useful information...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035266</commentid>
    <comment_count>7</comment_count>
    <who name="Niko Sams">niko.sams</who>
    <bug_when>2010-10-21 20:46:45 +0000</bug_when>
    <thetext>It must be somehow related to the relatively slow NFS share the projects reside on. (this and bug 224337)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035406</commentid>
    <comment_count>8</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-10-22 04:56:33 +0000</bug_when>
    <thetext>commit 7fb40ea15ce361c62f910715b839dc44b08a0405
Author: Milian Wolff &lt;mail@milianw.de&gt;
Date:   Fri Oct 22 04:57:15 2010 +0200

    only append subdirs to actual parent list jobs, fixes random crashes
    
    before we used sig/slot (for no reason?) and that way each dir was appended to *all* running import jobs
    this lead to the jobs filtering and deleting their items and leading to various crashes
    
    BUG: 254261
    
    TODO: backport fix to 4.1

diff --git a/plugins/genericprojectmanager/test/reloadtest.cpp b/plugins/genericprojectmanager/test/reloadtest.cpp
index f4098fb..9ef09ca 100644
--- a/plugins/genericprojectmanager/test/reloadtest.cpp
+++ b/plugins/genericprojectmanager/test/reloadtest.cpp
@@ -66,7 +66,7 @@ void ProjectLoadTest::cleanup()
     delete m_core;
 }
 
-void ProjectLoadTest::addRemoveFiles()
+QPair&lt;QString, KUrl&gt; makeProject()
 {
     QString path;
     QString projectName;
@@ -88,33 +88,40 @@ void ProjectLoadTest::addRemoveFiles()
     projectFile.write(projectFileContents.join(&quot;\n&quot;).toAscii());
     projectFile.close();
 
-    QFile f(path+&quot;/sdf&quot;);
+    return qMakePair(path, projecturl);
+}
+
+void ProjectLoadTest::addRemoveFiles()
+{
+    const QPair&lt;QString, KUrl&gt; p = makeProject();
+
+    QFile f(p.first+&quot;/sdf&quot;);
     f.open(QIODevice::WriteOnly);
     f.close();
 
-    KDevelop::ICore::self()-&gt;projectController()-&gt;openProject(projecturl);
+    KDevelop::ICore::self()-&gt;projectController()-&gt;openProject(p.second);
     QTest::qWait(500);
 
     KDevelop::IProject* project = KDevelop::ICore::self()-&gt;projectController()-&gt;projects().first();
-    Q_ASSERT(project-&gt;projectFileUrl() == projecturl);
+    Q_ASSERT(project-&gt;projectFileUrl() == p.second);
 
     //KDirWatch adds/removes the file automatically
     for (int i=0; i&lt;100; ++i) {
-        QFile f2(path+&quot;/blub&quot;+QString::number(i));
+        QFile f2(p.first+&quot;/blub&quot;+QString::number(i));
         f2.open(QIODevice::WriteOnly);
         f2.close();
     }
     for (int i=0; i&lt;50; ++i) {
-        QFile f2(path+&quot;/blub&quot;+QString::number(i));
+        QFile f2(p.first+&quot;/blub&quot;+QString::number(i));
         f2.remove();
     }
     QTest::qWait(500);
 
-    QCOMPARE(project-&gt;filesForUrl(path+&quot;/blub&quot;+QString::number(50)).count(), 1);
-    KDevelop::ProjectFileItem* file = project-&gt;filesForUrl(path+&quot;/blub&quot;+QString::number(50)).first();
+    QCOMPARE(project-&gt;filesForUrl(p.first+&quot;/blub&quot;+QString::number(50)).count(), 1);
+    KDevelop::ProjectFileItem* file = project-&gt;filesForUrl(p.first+&quot;/blub&quot;+QString::number(50)).first();
     project-&gt;projectFileManager()-&gt;removeFilesAndFolders(QList&lt;KDevelop::ProjectBaseItem*&gt;() &lt;&lt; file ); //message box has to be accepted manually :(
     for (int i=51; i&lt;100; ++i) {
-        QFile f2(path+&quot;/blub&quot;+QString::number(i));
+        QFile f2(p.first+&quot;/blub&quot;+QString::number(i));
         f2.remove();
     }
 
@@ -124,9 +131,8 @@ void ProjectLoadTest::addRemoveFiles()
     foreach (KDevelop::IProject *p, KDevelop::ICore::self()-&gt;projectController()-&gt;projects()) {
         KDevelop::ICore::self()-&gt;projectController()-&gt;closeProject(p);
     }
-
     QTest::qWait(500);
-    exec(&quot;rm -r &quot;+path);
+    exec(&quot;rm -r &quot;+p.first);
 }
 
 void _writeRandomStructure(QString path, int files)
@@ -153,47 +159,55 @@ void _writeRandomStructure(QString path, int files)
     }
 }
 
-void ProjectLoadTest::addLotsOfFiles()
+void fillProject(int filesPerDir, int Dirs, const QPair&lt;QString, KUrl&gt; project, bool wait)
 {
-    QString path;
-    QString projectName;
-    do {
-        projectName = QString(&quot;testproject%1&quot;).arg(qrand());
-        path = QDir::currentPath().append(&quot;/&quot;).append(projectName);
-    } while(QFile::exists(path));
-    QDir::current().mkdir(projectName);
-
-    QDir::setCurrent(path);
-
-    QStringList projectFileContents;
-    projectFileContents
-    &lt;&lt; &quot;[Project]&quot;
-    &lt;&lt; QString(&quot;Name=&quot;) + projectName
-    &lt;&lt; &quot;Manager=KDevGenericManager&quot;;
+    QDir(project.first).mkdir(&quot;foou&quot;);
+    _writeRandomStructure(project.first+&quot;/foou&quot;, 50);
+    for(int i=0; i &lt; 100; ++i) {
+        exec(&quot;bash -c \&quot;cp -r foou foox&quot;+QString::number(i)+&quot; &gt; /dev/null 2&gt;&amp;1 &amp; \&quot;&quot;);
+        if (wait) {
+            QTest::qWait(100);
+        }
+    }
+}
 
-    KUrl projecturl( path + &quot;/simpleproject.kdev4&quot; );
-    QFile projectFile(projecturl.toLocalFile());
-    projectFile.open(QIODevice::WriteOnly);
-    projectFile.write(projectFileContents.join(&quot;\n&quot;).toAscii());
-    projectFile.close();
+void ProjectLoadTest::addLotsOfFiles()
+{
+    QPair&lt;QString, KUrl&gt; p = makeProject();
 
-    KDevelop::ICore::self()-&gt;projectController()-&gt;openProject(projecturl);
+    KDevelop::ICore::self()-&gt;projectController()-&gt;openProject(p.second);
     QTest::qWait(2000);
 
     KDevelop::IProject* project = KDevelop::ICore::self()-&gt;projectController()-&gt;projects().first();
-    Q_ASSERT(project-&gt;projectFileUrl() == projecturl);
+    Q_ASSERT(project-&gt;projectFileUrl() == p.second);
 
-    QDir(path).mkdir(&quot;foou&quot;);
-    _writeRandomStructure(path+&quot;/foou&quot;, 50);
-    for(int i=0; i &lt; 100; ++i) {
-        exec(&quot;bash -c \&quot;cp -r foou foox&quot;+QString::number(i)+&quot; &gt; /dev/null 2&gt;&amp;1 &amp; \&quot;&quot;);
-        QTest::qWait(100);
+    fillProject(50, 100, p, true);
+
+    foreach (KDevelop::IProject *p, KDevelop::ICore::self()-&gt;projectController()-&gt;projects()) {
+        KDevelop::ICore::self()-&gt;projectController()-&gt;closeProject(p);
     }
 
+    QTest::qWait(500);
+    exec(&quot;rm -r &quot;+p.first);
+}
+
+void ProjectLoadTest::addMultipleJobs()
+{
+    QPair&lt;QString, KUrl&gt; p1 = makeProject();
+    fillProject(10, 25, p1, false);
+    QPair&lt;QString, KUrl&gt; p2 = makeProject();
+    fillProject(10, 25, p2, false);
+
+    KDevelop::ICore::self()-&gt;projectController()-&gt;openProject(p1.second);
+    KDevelop::ICore::self()-&gt;projectController()-&gt;openProject(p2.second);
+
+    QTest::qWait(2000);
+
     foreach (KDevelop::IProject *p, KDevelop::ICore::self()-&gt;projectController()-&gt;projects()) {
         KDevelop::ICore::self()-&gt;projectController()-&gt;closeProject(p);
     }
 
     QTest::qWait(500);
-    exec(&quot;rm -r &quot;+path);
+    exec(&quot;rm -r &quot;+p1.first);
+    exec(&quot;rm -r &quot;+p2.first);
 }
diff --git a/plugins/genericprojectmanager/test/reloadtest.h b/plugins/genericprojectmanager/test/reloadtest.h
index 317ce4c..f07c662 100644
--- a/plugins/genericprojectmanager/test/reloadtest.h
+++ b/plugins/genericprojectmanager/test/reloadtest.h
@@ -37,6 +37,8 @@ private slots:
 
   void addRemoveFiles();
   void addLotsOfFiles();
+  void addMultipleJobs();
+
 private:
   KDevelop::TestCore* m_core;
 };
diff --git a/project/abstractfilemanagerplugin.cpp b/project/abstractfilemanagerplugin.cpp
index 0b79e36..9b40e6c 100644
--- a/project/abstractfilemanagerplugin.cpp
+++ b/project/abstractfilemanagerplugin.cpp
@@ -75,7 +75,8 @@ struct AbstractFileManagerPlugin::Private {
     /// @p forceRecursion if true, existing folders will be re-read no matter what
     KJob* eventuallyReadFolder( ProjectFolderItem* item,
                                 const bool forceRecursion = false );
-    void addJobItems(ProjectFolderItem* baseItem,
+    void addJobItems(FileManagerListJob* job,
+                     ProjectFolderItem* baseItem,
                      const KIO::UDSEntryList&amp; entries,
                      const bool forceRecursion);
 
@@ -111,9 +112,9 @@ void AbstractFileManagerPlugin::Private::projectClosing(IProject* project)
 }
 
 KJob* AbstractFileManagerPlugin::Private::eventuallyReadFolder( ProjectFolderItem* item,
-                                                                const bool forceResursion )
+                                                                const bool forceRecursion )
 {
-    FileManagerListJob* listJob = new FileManagerListJob( item, forceResursion );
+    FileManagerListJob* listJob = new FileManagerListJob( item, forceRecursion );
     m_projectJobs[ item-&gt;project() ] &lt;&lt; listJob;
     kDebug() &lt;&lt; &quot;adding job&quot; &lt;&lt; listJob &lt;&lt; item-&gt;url() &lt;&lt; &quot;for project&quot; &lt;&lt; item-&gt;project();
 
@@ -122,11 +123,8 @@ KJob* AbstractFileManagerPlugin::Private::eventuallyReadFolder( ProjectFolderIte
     q-&gt;connect( listJob, SIGNAL(finished(KJob*)),
                 q, SLOT(jobFinished(KJob*)) );
 
-    q-&gt;connect( listJob, SIGNAL(entries(ProjectFolderItem*, KIO::UDSEntryList, bool)),
-                q, SLOT(addJobItems(ProjectFolderItem*, KIO::UDSEntryList, bool)) );
-
-    q-&gt;connect( q, SIGNAL(appendSubDir(ProjectFolderItem*)),
-                listJob, SLOT(addSubDir(ProjectFolderItem*)));
+    q-&gt;connect( listJob, SIGNAL(entries(FileManagerListJob*, ProjectFolderItem*, KIO::UDSEntryList, bool)),
+                q, SLOT(addJobItems(FileManagerListJob*, ProjectFolderItem*, KIO::UDSEntryList, bool)) );
 
     return listJob;
 }
@@ -139,7 +137,8 @@ void AbstractFileManagerPlugin::Private::jobFinished(KJob* job)
     m_projectJobs[ gmlJob-&gt;item()-&gt;project() ].removeOne( job );
 }
 
-void AbstractFileManagerPlugin::Private::addJobItems(ProjectFolderItem* baseItem,
+void AbstractFileManagerPlugin::Private::addJobItems(FileManagerListJob* job,
+                                                     ProjectFolderItem* baseItem,
                                                      const KIO::UDSEntryList&amp; entries,
                                                      const bool forceRecursion)
 {
@@ -202,7 +201,7 @@ void AbstractFileManagerPlugin::Private::addJobItems(ProjectFolderItem* baseItem
                 folders.removeAt( index );
                 if ( forceRecursion ) {
                     //no need to add this item, but we still want to recurse into it
-                    emit q-&gt;appendSubDir( f );
+                    job-&gt;addSubDir( f );
                 }
             }
         } else if ( baseItem-&gt;child(j)-&gt;type() == ProjectBaseItem::File ) {
@@ -229,7 +228,7 @@ void AbstractFileManagerPlugin::Private::addJobItems(ProjectFolderItem* baseItem
     foreach ( const KUrl&amp; url, folders ) {
         ProjectFolderItem* folder = q-&gt;createFolderItem( baseItem-&gt;project(), url, baseItem );
         emit q-&gt;folderAdded( folder );
-        emit q-&gt;appendSubDir( folder );
+        job-&gt;addSubDir( folder );
     }
 }
 
diff --git a/project/abstractfilemanagerplugin.h b/project/abstractfilemanagerplugin.h
index 84efda4..409f092 100644
--- a/project/abstractfilemanagerplugin.h
+++ b/project/abstractfilemanagerplugin.h
@@ -29,6 +29,8 @@
 
 namespace KDevelop {
 
+class FileManagerListJob;
+
 /**
  * This class can be used as a common base for file managers.
  *
@@ -90,9 +92,6 @@ protected:
                                              KDevelop::ProjectBaseItem* parent);
 
 Q_SIGNALS:
-    ///TODO: mark private
-    void appendSubDir(ProjectFolderItem* item );
-
     void folderAdded(KDevelop::ProjectFolderItem* folder);
     void folderRemoved(KDevelop::ProjectFolderItem* folder);
     void folderRenamed(const KUrl&amp; oldFolder, KDevelop::ProjectFolderItem* newFolder);
@@ -108,7 +107,8 @@ private:
 
     Q_PRIVATE_SLOT(d, KJob* eventuallyReadFolder( ProjectFolderItem* item,
                                                   const bool forceRecursion = false ))
-    Q_PRIVATE_SLOT(d, void addJobItems(ProjectFolderItem* baseItem,
+    Q_PRIVATE_SLOT(d, void addJobItems(FileManagerListJob* job,
+                                       ProjectFolderItem* baseItem,
                                        const KIO::UDSEntryList&amp; entries,
                                        const bool forceRecursion))
 
diff --git a/project/filemanagerlistjob.cpp b/project/filemanagerlistjob.cpp
index f97659e..38912cd 100644
--- a/project/filemanagerlistjob.cpp
+++ b/project/filemanagerlistjob.cpp
@@ -45,6 +45,8 @@ ProjectFolderItem* FileManagerListJob::item() const
 
 void FileManagerListJob::addSubDir( ProjectFolderItem* item )
 {
+    Q_ASSERT(!m_item || item-&gt;url().upUrl() == m_item-&gt;url());
+
     m_listQueue.enqueue(item);
 }
 
@@ -59,6 +61,7 @@ void FileManagerListJob::startNextJob()
     if ( m_listQueue.isEmpty() ) {
         return;
     }
+
     m_item = m_listQueue.dequeue();
     KIO::ListJob* job = KIO::listDir( m_item-&gt;url(), KIO::HideProgressInfo );
     job-&gt;setParentJob( this );
@@ -69,7 +72,7 @@ void FileManagerListJob::startNextJob()
 
 void FileManagerListJob::slotResult(KJob* job)
 {
-    emit entries(m_item, entryList, m_forceRecursion);
+    emit entries(this, m_item, entryList, m_forceRecursion);
     entryList.clear();
 
     if( job-&gt;error() ) {
diff --git a/project/filemanagerlistjob.h b/project/filemanagerlistjob.h
index c1a1147..4bb9b36 100644
--- a/project/filemanagerlistjob.h
+++ b/project/filemanagerlistjob.h
@@ -35,14 +35,16 @@ public:
     FileManagerListJob(ProjectFolderItem* item, const bool forceRecursion);
     ProjectFolderItem* item() const;
 
+    void addSubDir(ProjectFolderItem* item);
+
 signals:
-    void entries(ProjectFolderItem* baseItem, const KIO::UDSEntryList&amp; entries, const bool forceRecursion);
+    void entries(FileManagerListJob* job, ProjectFolderItem* baseItem,
+                 const KIO::UDSEntryList&amp; entries, const bool forceRecursion);
     void nextJob();
 
 private slots:
     void slotEntries(KIO::Job* job, const KIO::UDSEntryList&amp; entriesIn );
     void slotResult(KJob* job);
-    void addSubDir(ProjectFolderItem* item);
     void startNextJob();
 
 private:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037528</commentid>
    <comment_count>9</comment_count>
    <who name="Niko Sams">niko.sams</who>
    <bug_when>2010-10-27 10:05:32 +0000</bug_when>
    <thetext>could you backport the fix *please*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037716</commentid>
    <comment_count>10</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-10-27 21:09:06 +0000</bug_when>
    <thetext>done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039665</commentid>
    <comment_count>11</comment_count>
      <attachid>53075</attachid>
    <who name="George L. Emigh">ab4bd</who>
    <bug_when>2010-11-02 19:24:04 +0000</bug_when>
    <thetext>Created attachment 53075
New crash information added by DrKonqi

kdevelop (4.1.0) on KDE Platform 4.5.2 (KDE 4.5.2) using Qt 4.6.3

I&apos;m using 4.1 from the ebuild provided by Gentoo, if I have 2 open projects when I exit, it will crash when I start kdevelop again.

-- Backtrace (Reduced):
#6  0x00007fbbf51a68cb in QUrl::QUrl(QUrl const&amp;) () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007fbbf64056e9 in KUrl::KUrl(KUrl const&amp;) () from /usr/lib/libkdecore.so.5
#8  0x00007fbbf1ed0f91 in KDevelop::ProjectBaseItem::url (this=&lt;value optimized out&gt;) at /var/tmp/portage/dev-util/kdevplatform-1.1.0/work/kdevplatform-1.1.0/project/projectmodel.cpp:354
#9  0x00007fbbe0074399 in GenericManagerListJob::startNextJob (this=0x18376d0)
    at /var/tmp/portage/dev-util/kdevplatform-1.1.0/work/kdevplatform-1.1.0/plugins/genericprojectmanager/genericmanagerlistjob.cpp:61
#10 0x00007fbbe00744a4 in GenericManagerListJob::qt_metacall (this=0x18376d0, _c=QMetaObject::InvokeMetaMethod, _id=&lt;value optimized out&gt;, _a=0x37ee880)
    at /var/tmp/portage/dev-util/kdevplatform-1.1.0/work/kdevplatform-1.1.0_build/plugins/genericprojectmanager/genericmanagerlistjob.moc:93</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039675</commentid>
    <comment_count>12</comment_count>
    <who name="Niko Sams">niko.sams</who>
    <bug_when>2010-11-02 19:55:38 +0000</bug_when>
    <thetext>George, the crash will be fixed in 4.1.1, you can already use the 4.1 branch from git.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041114</commentid>
    <comment_count>13</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-11-06 20:13:11 +0000</bug_when>
    <thetext>*** Bug 256247 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047654</commentid>
    <comment_count>14</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-11-21 16:51:48 +0000</bug_when>
    <thetext>*** Bug 246517 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049399</commentid>
    <comment_count>15</comment_count>
    <who name="Milian Wolff">mail</who>
    <bug_when>2010-11-25 21:09:02 +0000</bug_when>
    <thetext>*** Bug 257860 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53075</attachid>
            <date>2010-11-02 19:24:04 +0000</date>
            <delta_ts>2010-11-02 19:24:04 +0000</delta_ts>
            <desc>New crash information added by DrKonqi</desc>
            <filename>drkonqireport</filename>
            <type>text/plain</type>
            <size>5615</size>
            <attacher name="George L. Emigh">ab4bd</attacher>
            
              <data encoding="base64">QXBwbGljYXRpb246IGtkZXZlbG9wICg0LjEuMCkKS0RFIFBsYXRmb3JtIFZlcnNpb246IDQuNS4y
IChLREUgNC41LjIpClF0IFZlcnNpb246IDQuNi4zCk9wZXJhdGluZyBTeXN0ZW06IExpbnV4IDIu
Ni4zNS1nZW50b28tcjEyIHg4Nl82NApEaXN0cmlidXRpb24gKFBsYXRmb3JtKTogR2VudG9vIFBh
Y2thZ2VzCgotLSBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY3Jhc2g6CkknbSB1c2luZyA0LjEgZnJv
bSB0aGUgZWJ1aWxkIHByb3ZpZGVkIGJ5IEdlbnRvbywgaWYgSSBoYXZlIDIgb3BlbiBwcm9qZWN0
cyB3aGVuIEkgZXhpdCwgaXQgd2lsbCBjcmFzaCB3aGVuIEkgc3RhcnQga2RldmVsb3AgYWdhaW4u
CgpUaGUgY3Jhc2ggY2FuIGJlIHJlcHJvZHVjZWQgZXZlcnkgdGltZS4KCi0tIEJhY2t0cmFjZToK
QXBwbGljYXRpb246IEtEZXZlbG9wIChrZGV2ZWxvcCksIHNpZ25hbDogU2VnbWVudGF0aW9uIGZh
dWx0CltDdXJyZW50IHRocmVhZCBpcyAxIChUaHJlYWQgMHg3ZmJiZjY5ODM3NjAgKExXUCAxNTM0
OCkpXQoKVGhyZWFkIDUgKFRocmVhZCAweDdmYmJlMTU3MjcxMCAoTFdQIDE1MzQ5KSk6CiMwICAw
eDAwMDA3ZmJiZjNiMzVjMTkgaW4gcHRocmVhZF9jb25kX3RpbWVkd2FpdEBAR0xJQkNfMi4zLjIg
KCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMSAgMHgwMDAwN2ZiYmY1MTA4MDNkIGluIFFX
YWl0Q29uZGl0aW9uOjp3YWl0KFFNdXRleCosIHVuc2lnbmVkIGxvbmcpICgpIGZyb20gL3Vzci9s
aWI2NC9xdDQvbGliUXRDb3JlLnNvLjQKIzIgIDB4MDAwMDdmYmJmMThmYjlkZSBpbiBLRGV2ZWxv
cDo6RFVDaGFpblByaXZhdGU6OkNsZWFudXBUaHJlYWQ6OnJ1biAodGhpcz0weGQyNDhiMCkgYXQg
L3Zhci90bXAvcG9ydGFnZS9kZXYtdXRpbC9rZGV2cGxhdGZvcm0tMS4xLjAvd29yay9rZGV2cGxh
dGZvcm0tMS4xLjAvbGFuZ3VhZ2UvZHVjaGFpbi9kdWNoYWluLmNwcDoyODYKIzMgIDB4MDAwMDdm
YmJmNTEwNzBiNSBpbiA/PyAoKSBmcm9tIC91c3IvbGliNjQvcXQ0L2xpYlF0Q29yZS5zby40CiM0
ICAweDAwMDA3ZmJiZjNiMzA5ZWEgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi9saWJwdGhy
ZWFkLnNvLjAKIzUgIDB4MDAwMDdmYmJmM2UyZDg3ZCBpbiBjbG9uZSAoKSBmcm9tIC9saWIvbGli
Yy5zby42CgpUaHJlYWQgNCAoVGhyZWFkIDB4N2ZiYmQzMDJlNzEwIChMV1AgMTUzNTIpKToKIzAg
IDB4MDAwMDdmYmJmM2UyM2NlMyBpbiBwb2xsICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzEgIDB4
MDAwMDdmYmJlZjAwZmU5ZCBpbiA/PyAoKSBmcm9tIC91c3IvbGliL2xpYmdsaWItMi4wLnNvLjAK
IzIgIDB4MDAwMDdmYmJlZjAxMDJlMiBpbiBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKCkgZnJv
bSAvdXNyL2xpYi9saWJnbGliLTIuMC5zby4wCiMzICAweDAwMDA3ZmJiZjUyMWU0NmUgaW4gUUV2
ZW50RGlzcGF0Y2hlckdsaWI6OnByb2Nlc3NFdmVudHMoUUZsYWdzPFFFdmVudExvb3A6OlByb2Nl
c3NFdmVudHNGbGFnPikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojNCAg
MHgwMDAwN2ZiYmY1MWYzN2YyIGluIFFFdmVudExvb3A6OnByb2Nlc3NFdmVudHMoUUZsYWdzPFFF
dmVudExvb3A6OlByb2Nlc3NFdmVudHNGbGFnPikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJR
dENvcmUuc28uNAojNSAgMHgwMDAwN2ZiYmY1MWYzYmJkIGluIFFFdmVudExvb3A6OmV4ZWMoUUZs
YWdzPFFFdmVudExvb3A6OlByb2Nlc3NFdmVudHNGbGFnPikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0
NC9saWJRdENvcmUuc28uNAojNiAgMHgwMDAwN2ZiYmY1MTA0OWRiIGluIFFUaHJlYWQ6OmV4ZWMo
KSAoKSBmcm9tIC91c3IvbGliNjQvcXQ0L2xpYlF0Q29yZS5zby40CiM3ICAweDAwMDA3ZmJiZjUx
MDcwYjUgaW4gPz8gKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojOCAgMHgw
MDAwN2ZiYmYzYjMwOWVhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5z
by4wCiM5ICAweDAwMDA3ZmJiZjNlMmQ4N2QgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28u
NgoKVGhyZWFkIDMgKFRocmVhZCAweDdmYmJkMDZmZTcxMCAoTFdQIDE1NDIxKSk6CiMwICAweDAw
MDA3ZmJiZjNiMzU4YWMgaW4gcHRocmVhZF9jb25kX3dhaXRAQEdMSUJDXzIuMy4yICgpIGZyb20g
L2xpYi9saWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAwMDdmYmJlYjU2M2NlNiBpbiA/PyAoKSBmcm9t
IC91c3IvbGliNjQvcXQ0L2xpYlF0V2ViS2l0LnNvLjQKIzIgIDB4MDAwMDdmYmJlYjU2M2QyOSBp
biA/PyAoKSBmcm9tIC91c3IvbGliNjQvcXQ0L2xpYlF0V2ViS2l0LnNvLjQKIzMgIDB4MDAwMDdm
YmJmM2IzMDllYSBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAoj
NCAgMHgwMDAwN2ZiYmYzZTJkODdkIGluIGNsb25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKClRo
cmVhZCAyIChUaHJlYWQgMHg3ZmJiY2Y1NTY3MTAgKExXUCAxNTQyMikpOgojMCAgMHgwMDAwN2Zi
YmYzYjM1YzE5IGluIHB0aHJlYWRfY29uZF90aW1lZHdhaXRAQEdMSUJDXzIuMy4yICgpIGZyb20g
L2xpYi9saWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAwMDdmYmJmNTEwODAzZCBpbiBRV2FpdENvbmRp
dGlvbjo6d2FpdChRTXV0ZXgqLCB1bnNpZ25lZCBsb25nKSAoKSBmcm9tIC91c3IvbGliNjQvcXQ0
L2xpYlF0Q29yZS5zby40CiMyICAweDAwMDA3ZmJiZjUwZmQwYTggaW4gPz8gKCkgZnJvbSAvdXNy
L2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojMyAgMHgwMDAwN2ZiYmY1MTA3MGI1IGluID8/ICgp
IGZyb20gL3Vzci9saWI2NC9xdDQvbGliUXRDb3JlLnNvLjQKIzQgIDB4MDAwMDdmYmJmM2IzMDll
YSBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojNSAgMHgwMDAw
N2ZiYmYzZTJkODdkIGluIGNsb25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKClRocmVhZCAxIChU
aHJlYWQgMHg3ZmJiZjY5ODM3NjAgKExXUCAxNTM0OCkpOgpbS0NyYXNoIEhhbmRsZXJdCiM2ICAw
eDAwMDA3ZmJiZjUxYTY4Y2IgaW4gUVVybDo6UVVybChRVXJsIGNvbnN0JikgKCkgZnJvbSAvdXNy
L2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojNyAgMHgwMDAwN2ZiYmY2NDA1NmU5IGluIEtVcmw6
OktVcmwoS1VybCBjb25zdCYpICgpIGZyb20gL3Vzci9saWIvbGlia2RlY29yZS5zby41CiM4ICAw
eDAwMDA3ZmJiZjFlZDBmOTEgaW4gS0RldmVsb3A6OlByb2plY3RCYXNlSXRlbTo6dXJsICh0aGlz
PTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PikgYXQgL3Zhci90bXAvcG9ydGFnZS9kZXYtdXRpbC9rZGV2
cGxhdGZvcm0tMS4xLjAvd29yay9rZGV2cGxhdGZvcm0tMS4xLjAvcHJvamVjdC9wcm9qZWN0bW9k
ZWwuY3BwOjM1NAojOSAgMHgwMDAwN2ZiYmUwMDc0Mzk5IGluIEdlbmVyaWNNYW5hZ2VyTGlzdEpv
Yjo6c3RhcnROZXh0Sm9iICh0aGlzPTB4MTgzNzZkMCkKICAgIGF0IC92YXIvdG1wL3BvcnRhZ2Uv
ZGV2LXV0aWwva2RldnBsYXRmb3JtLTEuMS4wL3dvcmsva2RldnBsYXRmb3JtLTEuMS4wL3BsdWdp
bnMvZ2VuZXJpY3Byb2plY3RtYW5hZ2VyL2dlbmVyaWNtYW5hZ2VybGlzdGpvYi5jcHA6NjEKIzEw
IDB4MDAwMDdmYmJlMDA3NDRhNCBpbiBHZW5lcmljTWFuYWdlckxpc3RKb2I6OnF0X21ldGFjYWxs
ICh0aGlzPTB4MTgzNzZkMCwgX2M9UU1ldGFPYmplY3Q6Okludm9rZU1ldGFNZXRob2QsIF9pZD08
dmFsdWUgb3B0aW1pemVkIG91dD4sIF9hPTB4MzdlZTg4MCkKICAgIGF0IC92YXIvdG1wL3BvcnRh
Z2UvZGV2LXV0aWwva2RldnBsYXRmb3JtLTEuMS4wL3dvcmsva2RldnBsYXRmb3JtLTEuMS4wX2J1
aWxkL3BsdWdpbnMvZ2VuZXJpY3Byb2plY3RtYW5hZ2VyL2dlbmVyaWNtYW5hZ2VybGlzdGpvYi5t
b2M6OTMKIzExIDB4MDAwMDdmYmJmNTIwNGNiMSBpbiBRT2JqZWN0OjpldmVudChRRXZlbnQqKSAo
KSBmcm9tIC91c3IvbGliNjQvcXQ0L2xpYlF0Q29yZS5zby40CiMxMiAweDAwMDA3ZmJiZjQ1OTNm
NmMgaW4gUUFwcGxpY2F0aW9uUHJpdmF0ZTo6bm90aWZ5X2hlbHBlcihRT2JqZWN0KiwgUUV2ZW50
KikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJRdEd1aS5zby40CiMxMyAweDAwMDA3ZmJiZjQ1
OWE0NGIgaW4gUUFwcGxpY2F0aW9uOjpub3RpZnkoUU9iamVjdCosIFFFdmVudCopICgpIGZyb20g
L3Vzci9saWI2NC9xdDQvbGliUXRHdWkuc28uNAojMTQgMHgwMDAwN2ZiYmY1NzRmMzQ4IGluIEtB
cHBsaWNhdGlvbjo6bm90aWZ5KFFPYmplY3QqLCBRRXZlbnQqKSAoKSBmcm9tIC91c3IvbGliL2xp
YmtkZXVpLnNvLjUKIzE1IDB4MDAwMDdmYmJmNTFmNGVjYiBpbiBRQ29yZUFwcGxpY2F0aW9uOjpu
b3RpZnlJbnRlcm5hbChRT2JqZWN0KiwgUUV2ZW50KikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9s
aWJRdENvcmUuc28uNAojMTYgMHgwMDAwN2ZiYmY1MWY4NTMzIGluIFFDb3JlQXBwbGljYXRpb25Q
cml2YXRlOjpzZW5kUG9zdGVkRXZlbnRzKFFPYmplY3QqLCBpbnQsIFFUaHJlYWREYXRhKikgKCkg
ZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojMTcgMHgwMDAwN2ZiYmY1MjFlOTMz
IGluID8/ICgpIGZyb20gL3Vzci9saWI2NC9xdDQvbGliUXRDb3JlLnNvLjQKIzE4IDB4MDAwMDdm
YmJlZjAwYzM5OSBpbiBnX21haW5fY29udGV4dF9kaXNwYXRjaCAoKSBmcm9tIC91c3IvbGliL2xp
YmdsaWItMi4wLnNvLjAKIzE5IDB4MDAwMDdmYmJlZjAxMDE0MCBpbiA/PyAoKSBmcm9tIC91c3Iv
bGliL2xpYmdsaWItMi4wLnNvLjAKIzIwIDB4MDAwMDdmYmJlZjAxMDJlMiBpbiBnX21haW5fY29u
dGV4dF9pdGVyYXRpb24gKCkgZnJvbSAvdXNyL2xpYi9saWJnbGliLTIuMC5zby4wCiMyMSAweDAw
MDA3ZmJiZjUyMWU0MWUgaW4gUUV2ZW50RGlzcGF0Y2hlckdsaWI6OnByb2Nlc3NFdmVudHMoUUZs
YWdzPFFFdmVudExvb3A6OlByb2Nlc3NFdmVudHNGbGFnPikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0
NC9saWJRdENvcmUuc28uNAojMjIgMHgwMDAwN2ZiYmY0NjQzMjA2IGluID8/ICgpIGZyb20gL3Vz
ci9saWI2NC9xdDQvbGliUXRHdWkuc28uNAojMjMgMHgwMDAwN2ZiYmY1MWYzN2YyIGluIFFFdmVu
dExvb3A6OnByb2Nlc3NFdmVudHMoUUZsYWdzPFFFdmVudExvb3A6OlByb2Nlc3NFdmVudHNGbGFn
PikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojMjQgMHgwMDAwN2ZiYmY1
MWYzYmJkIGluIFFFdmVudExvb3A6OmV4ZWMoUUZsYWdzPFFFdmVudExvb3A6OlByb2Nlc3NFdmVu
dHNGbGFnPikgKCkgZnJvbSAvdXNyL2xpYjY0L3F0NC9saWJRdENvcmUuc28uNAojMjUgMHgwMDAw
N2ZiYmY1MWY4N2ZiIGluIFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKSAoKSBmcm9tIC91c3IvbGli
NjQvcXQ0L2xpYlF0Q29yZS5zby40CiMyNiAweDAwMDAwMDAwMDA0MDk1YWYgaW4gbWFpbiAoYXJn
Yz08dmFsdWUgb3B0aW1pemVkIG91dD4sIGFyZ3Y9PHZhbHVlIG9wdGltaXplZCBvdXQ+KSBhdCAv
dmFyL3RtcC9wb3J0YWdlL2Rldi11dGlsL2tkZXZlbG9wLTQuMS4wL3dvcmsva2RldmVsb3AtNC4x
LjAvYXBwL21haW4uY3BwOjM4MAoKUG9zc2libGUgZHVwbGljYXRlcyBieSBxdWVyeTogYnVnIDI1
NDI2MS4KClJlcG9ydGVkIHVzaW5nIERyS29ucWk=
</data>

          </attachment>
      

    </bug>

</bugzilla>