Summary: | kdevelop crashes while indexing large project assertion bucketForIndex(bucketNumber)->noNextBuckets()] | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Georgiy Shapovalov <gshapovalov> |
Component: | Language Support: CPP (old) | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aleixpol, bangerth, igorkuo, ltanure, olivier.hallot, stompdagger1 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/kdevelop/kdevelop/commit/1a1e5b15e2097fb4e491ab7d67d8aae42008d298 | Version Fixed In: | 5.11.230400 |
Sentry Crash Report: |
Description
Georgiy Shapovalov
2011-05-04 06:48:58 UTC
You ran out of memory in thread #8, throwing an exception of kind qBadAlloc because it does a QByteArray::resize (this=0x904ad020, size=2147483647) Note: 2147483647 == std::numeric_limits<int>::max() W. It is very unlikely that KDevelop intended to allocate 2 gigabytes of contingous memory. It is more likely a bug while computing the memory size. can someone try to reproduce this? Reproduced: kdevelop(22383)/kdevelop (cpp support) CPPInternalParseJob::run: ===-- PARSING --===> "/home/krf/devel/src/linux/arch/arm/mach-omap1/board-sx1.c" kdevelop(22383)/kdevelop (cpp support) CPPInternalParseJob::run: building duchain for "/home/krf/devel/src/linux/arch/arm/mach-omap1/board-sx1.c" kdevelop(22383)/kdevelop (cpp support) ContextBuilder::buildContexts: ContextBuilder::buildContexts: compiling ASSERT: "bucketForIndex(bucketNumber)->noNextBuckets()" in file /home/krf/devel/src/kdevplatform/language/duchain/repositories/itemrepository.h, line 2565 Out of memory, I guess. *** Bug 324446 has been marked as a duplicate of this bug. *** Can reproduce when trying to load QtWebEngine in KDevelop. I've now found a way to trigger this crash in a unit test, but the input data is very large and the test takes ages to fail. But before this is lost, I wanted to post it here: http://users.physik.fu-berlin.de/~milianw/272408.tar.bz2 *** Bug 316057 has been marked as a duplicate of this bug. *** Git commit b09d35d9e7f8ef061a96f4a11834153e48c8dc03 by Milian Wolff. Committed on 03/05/2014 at 17:57. Pushed by mwolff into branch 'master'. Fix item repo issues with hash clashes and monster buckets. 1) Do not alter bucketPtr before freeing it up. Before, we deleted an item and then sometimes changed the bucketPtr when there where clashing items. If the new bucketPtr was then a monster, we assumed its item was deleted and assert that. As we deleted the item in a different bucket, the assertion did not hold and we crashed... The assertion happens when a normal item is deleted and another monster item exists with the same hash in a different bucket. 2) Unset next bucket for hash, before deconverting it. This is probably just a workaround, as a comment above hints at a general problem here, that this should be done more regularly. Calling setNextBucketForHash(hash, 0) always though leads to other, new problems and assertions. So I'll leave it as is for now. The assertion happens when a monster item is deleted and another item exists with the same hash in a different bucket. M +13 -5 language/duchain/repositories/itemrepository.h M +47 -11 language/duchain/tests/test_itemrepository.cpp http://commits.kde.org/kdevplatform/b09d35d9e7f8ef061a96f4a11834153e48c8dc03 *** Bug 343950 has been marked as a duplicate of this bug. *** reopening as this is still crashing sometimes apparently. I can reproduce this assertion [ ASSERT: "bucketForIndex(bucketNumber)->noNextBuckets()" in file ../kdevplatform/serialization/itemrepository.h, line 2263 ] in the current KDevelop master most of the time like this: 0. Create a session with WebKit and kdevelop projects in it. 1. Clean the session's cache. 2. Open this session in KDevelop built in Debug mode. 3. Let Background Parser complete about 5-8% of parsing, then restart KDevelop. 4. Let Background Parser work until this assertion occurs. After the assertion occurs, it can usually be reproduced much faster by starting KDevelop again and *not* clearing the cache. Probably the cache gets corrupted when the assertion occurs. This is the backtrace from the current KDevelop master (0fdb6a14efebadb7cd99a3a3e6ffd21a9aa705f8): Application: KDevelop (kdevelop), signal: Aborted [KCrash Handler] #4 0x00007f62a0a93615 in raise () at /usr/lib/libc.so.6 #5 0x00007f62a0a7c862 in abort () at /usr/lib/libc.so.6 #6 0x00007f62a0ff09ac in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914 #7 QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7f621222e578, msg=msg@entry=0x7f62a12f7ea0 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:893 #8 0x00007f62a0fefd59 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3358 #9 0x00007f62a3f4479c in KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 1048576u>::deleteBucket(int) (this=0x5630d62d3960, bucketNumber=494) at ../kdevplatform/serialization/itemrepository.h:2263 #10 0x00007f62a3f3eea3 in KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 1048576u>::convertMonsterBucket(int, int) (this=0x5630d62d3960, bucketNumber=494, extent=0) at ../kdevplatform/serialization/itemrepository.h:1993 #11 0x00007f62a3f3a00d in KDevelop::ItemRepository<KDevelop::PersistentSymbolTableItem, KDevelop::PersistentSymbolTableRequestItem, true, false, 0u, 1048576u>::deleteItem(unsigned int) (this=0x5630d62d3960, index=32374786) at ../kdevplatform/serialization/itemrepository.h:1499 #12 0x00007f62a3f36a2a in KDevelop::PersistentSymbolTable::addDeclaration(KDevelop::IndexedQualifiedIdentifier const&, KDevelop::IndexedDeclaration const&) (this=0x7f62a4f65090 <KDevelop::PersistentSymbolTable::self()::ret>, id=..., declaration=...) at ../kdevplatform/language/duchain/persistentsymboltable.cpp:245 #13 0x00007f62a3ec50bc in KDevelop::Declaration::setInSymbolTable(bool) (this=0x7f61e3bba370, inSymbolTable=true) at ../kdevplatform/language/duchain/declaration.cpp:623 #14 0x00007f62a3ec373a in KDevelop::Declaration::setIdentifier(KDevelop::Identifier const&) (this=0x7f61e3bba370, identifier=...) at ../kdevplatform/language/duchain/declaration.cpp:235 #15 0x00007f61fc6f14f1 in KDevelop::AbstractDeclarationBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder> >::openDeclaration<KDevelop::Declaration>(KDevelop::Identifier const&, KDevelop::RangeInRevision const&, KDevelop::AbstractDeclarationBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder> >::DeclarationFlags) (this=0x7f61e3fb0b40, localId=..., newRange=..., flags=KDevelop::AbstractDeclarationBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder> >::NoFlags) at ../kdevplatform/language/duchain/builders/abstractdeclarationbuilder.h:153 #16 0x00007f61fc6eea2e in DeclarationBuilder::openDeclaration<KDevelop::Declaration>(KDevelop::Identifier const&, KDevelop::RangeInRevision const&, KDevelop::AbstractDeclarationBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder> >::DeclarationFlags) (this=0x7f61e3fb0b40, id=..., newRange=..., flags=KDevelop::AbstractDeclarationBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder> >::NoFlags) at ../plugins/qmljs/duchain/declarationbuilder.h:154 #17 0x00007f61fc707c36 in QmlJS::NodeJS::createObject(QString const&, int, DeclarationBuilder*) (this=0x7f61f9432200, name=..., index=2, builder=0x7f61e3fb0b40) at ../plugins/qmljs/duchain/frameworks/nodejs.cpp:72 #18 0x00007f61fc707b7c in QmlJS::NodeJS::initialize(DeclarationBuilder*) (this=0x7f61f9432200, builder=0x7f61e3fb0b40) at ../plugins/qmljs/duchain/frameworks/nodejs.cpp:64 #19 0x00007f61fc6e5df8 in DeclarationBuilder::startVisiting(QmlJS::AST::Node*) (this=0x7f61e3fb0b40, node=0x7f61e2d01fa0) at ../plugins/qmljs/duchain/declarationbuilder.cpp:102 #20 0x00007f61fc6c6bf8 in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7f61e3fb0b40, node=0x7f61e2d01fa0, context=0x7f6198a66100) at ../kdevplatform/language/duchain/builders/abstractcontextbuilder.h:127 #21 0x00007f61fc6c9dbd in KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7f61e3fb0b40, node=0x7f61e2d01fa0, context=0x7f6198a66100) at ../kdevplatform/language/duchain/builders/abstracttypebuilder.h:84 #22 0x00007f61fc6c94cd in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f61e3fb0b40, url=..., node=0x7f61e2d01fa0, updateContext=...) at ../kdevplatform/language/duchain/builders/abstractcontextbuilder.h:106 #23 0x00007f61fc6e5b94 in DeclarationBuilder::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f61e3fb0b40, url=..., node=0x7f61e2d01fa0, updateContext_=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:81 #24 0x00007f61fc6e5988 in DeclarationBuilder::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f621222edb0, url=..., node=0x7f61e2d01fa0, updateContext_=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:68 #25 0x00007f61fc6c32a0 in QmlJsParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0x5630f004f450, pointer=..., thread=0x7f61ec003be0) at ../plugins/qmljs/qmljsparsejob.cpp:152 #26 0x00007f62a3d2712c in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #27 0x00007f62a3d27739 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #28 0x00007f62a3d26742 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #29 0x00007f62a3d25fd1 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #30 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x7f61ec003be0) at thread/qthread_unix.cpp:329 #31 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #32 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 24 (Thread 0x7f6212a31640 (LWP 671144) "Queue(0x5630d46"): #1 0x00007f62a0b23137 in nanosleep () at /usr/lib/libc.so.6 #2 0x00007f62a126c29f in qt_nanosleep(timespec) (amount=...) at kernel/qelapsedtimer_unix.cpp:195 #3 0x00007f62a3ede51b in KDevelop::DUChainLock::lockForWrite(unsigned int) (this=0x7f62a4566fa0 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder+32>, timeout=0) at ../kdevplatform/language/duchain/duchainlock.cpp:170 #4 0x00007f62a3ede855 in KDevelop::DUChainWriteLocker::lock() (this=0x7f6212a2f4f0) at ../kdevplatform/language/duchain/duchainlock.cpp:277 #5 0x00007f62a3ede7ee in KDevelop::DUChainWriteLocker::DUChainWriteLocker(KDevelop::DUChainLock*, unsigned int) (this=0x7f6212a2f4f0, duChainLock=0x0, timeout=0) at ../kdevplatform/language/duchain/duchainlock.cpp:261 #6 0x00007f61fc6e6e35 in DeclarationBuilder::visit(QmlJS::AST::BinaryExpression*) (this=0x7f6212a2fdb0, node=0x7f61a6a54df8) at ../plugins/qmljs/duchain/declarationbuilder.cpp:424 #7 0x00007f61fc716368 in QmlJS::AST::BinaryExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a54df8, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:416 #8 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a54df8, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #9 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a54df8, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #10 0x00007f61fc7167e1 in QmlJS::AST::ExpressionStatement::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a54e30, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:505 #11 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a54e30, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #12 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a54e30, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #13 0x00007f61fc71765f in QmlJS::AST::StatementSourceElement::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a54e58, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:791 #14 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a54e58, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #15 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a54e58, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #16 0x00007f61fc717574 in QmlJS::AST::SourceElements::accept0(QmlJS::AST::Visitor*) (this=0x7f61a4e95f40, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:772 #17 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a4e95f40, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #18 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a4e95f40, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #19 0x00007f61fc717489 in QmlJS::AST::FunctionBody::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a55838, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:753 #20 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a55838, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #21 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a55838, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #22 0x00007f61fc6edf84 in DeclarationBuilder::declareFunction<QmlJS::FunctionDeclaration>(QmlJS::AST::Node*, bool, KDevelop::Identifier const&, KDevelop::RangeInRevision const&, QmlJS::AST::Node*, KDevelop::RangeInRevision const&, QmlJS::AST::Node*, KDevelop::RangeInRevision const&) (this=0x7f6212a2fdb0, node=0x7f61a6a55850, newPrototypeContext=true, name=..., nameRange=..., parameters=0x0, parametersRange=..., body=0x7f61a6a55838, bodyRange=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:192 #23 0x00007f61fc6e5f9a in DeclarationBuilder::visit(QmlJS::AST::FunctionDeclaration*) (this=0x7f6212a2fdb0, node=0x7f61a6a55850) at ../plugins/qmljs/duchain/declarationbuilder.cpp:227 #24 0x00007f61fc71730e in QmlJS::AST::FunctionDeclaration::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a55850, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:723 #25 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a55850, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #26 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a55850, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #27 0x00007f61fc7175f1 in QmlJS::AST::FunctionSourceElement::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a558e0, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:782 #28 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a558e0, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #29 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a558e0, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #30 0x00007f61fc717574 in QmlJS::AST::SourceElements::accept0(QmlJS::AST::Visitor*) (this=0x7f61a4e94910, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:772 #31 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a4e94910, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #32 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a4e94910, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #33 0x00007f61fc7174f7 in QmlJS::AST::Program::accept0(QmlJS::AST::Visitor*) (this=0x7f61a6a55ac8, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:762 #34 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f61a6a55ac8, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #35 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f61a6a55ac8, visitor=0x7f6212a2ff98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #36 0x00007f61fc6e4baa in ContextBuilder::startVisiting(QmlJS::AST::Node*) (this=0x7f6212a2fdb0, node=0x7f61a6a55ac8) at ../plugins/qmljs/duchain/contextbuilder.cpp:79 #37 0x00007f61fc6e5e5f in DeclarationBuilder::startVisiting(QmlJS::AST::Node*) (this=0x7f6212a2fdb0, node=0x7f61a6a55ac8) at ../plugins/qmljs/duchain/declarationbuilder.cpp:110 #38 0x00007f61fc6c6bf8 in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7f6212a2fdb0, node=0x7f61a6a55ac8, context=0x7f61a7155800) at ../kdevplatform/language/duchain/builders/abstractcontextbuilder.h:127 #39 0x00007f61fc6c9dbd in KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7f6212a2fdb0, node=0x7f61a6a55ac8, context=0x7f61a7155800) at ../kdevplatform/language/duchain/builders/abstracttypebuilder.h:84 #40 0x00007f61fc6c94cd in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f6212a2fdb0, url=..., node=0x7f61a6a55ac8, updateContext=...) at ../kdevplatform/language/duchain/builders/abstractcontextbuilder.h:106 #41 0x00007f61fc6e5b94 in DeclarationBuilder::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f6212a2fdb0, url=..., node=0x7f61a6a55ac8, updateContext_=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:81 #42 0x00007f61fc6c32a0 in QmlJsParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0x5630f0063710, pointer=..., thread=0x7f620fefbef0) at ../plugins/qmljs/qmljsparsejob.cpp:152 #43 0x00007f62a3d2712c in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #44 0x00007f62a3d27739 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #45 0x00007f62a3d26742 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #46 0x00007f62a3d25fd1 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #47 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x7f620fefbef0) at thread/qthread_unix.cpp:329 #48 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #49 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 23 (Thread 0x7f61ff7fe640 (LWP 671143) "Queue(0x5630d46"): #1 0x00007f62a0b23137 in nanosleep () at /usr/lib/libc.so.6 #2 0x00007f62a126c29f in qt_nanosleep(timespec) (amount=...) at kernel/qelapsedtimer_unix.cpp:195 #3 0x00007f62a3ede2bb in KDevelop::DUChainLock::lockForRead(unsigned int) (this=0x7f62a4566fa0 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder+32>, timeout=0) at ../kdevplatform/language/duchain/duchainlock.cpp:96 #4 0x00007f62a3ede729 in KDevelop::DUChainReadLocker::lock() (this=0x7f61ff7fb560) at ../kdevplatform/language/duchain/duchainlock.cpp:238 #5 0x00007f62a3ede6b0 in KDevelop::DUChainReadLocker::DUChainReadLocker(KDevelop::DUChainLock*, unsigned int) (this=0x7f61ff7fb560, duChainLock=0x0, timeout=0) at ../kdevplatform/language/duchain/duchainlock.cpp:217 #6 0x00007f61fc6f53ad in ExpressionVisitor::encounter(QString const&, KDevelop::DUContext*) (this=0x7f61ff7fb650, declaration=..., context=0x0) at ../plugins/qmljs/duchain/expressionvisitor.cpp:298 #7 0x00007f61fc6f4a82 in ExpressionVisitor::visit(QmlJS::AST::IdentifierExpression*) (this=0x7f61ff7fb650, node=0x7f620f613870) at ../plugins/qmljs/duchain/expressionvisitor.cpp:181 #8 0x00007f61fc7154d4 in QmlJS::AST::IdentifierExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f620f613870, visitor=0x7f61ff7fb680) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:106 #9 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620f613870, visitor=0x7f61ff7fb680) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #10 0x00007f61fc6e4a78 in ContextBuilder::findType(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f620f613870) at ../plugins/qmljs/duchain/contextbuilder.cpp:58 #11 0x00007f61fc6e6559 in DeclarationBuilder::inferArgumentsFromCall(QmlJS::AST::Node*, QmlJS::AST::ArgumentList*) (this=0x7f61ff7fcdb0, base=0x7f620f613870, arguments=0x7f620f6138d0) at ../plugins/qmljs/duchain/declarationbuilder.cpp:323 #12 0x00007f61fc6e7173 in DeclarationBuilder::visit(QmlJS::AST::CallExpression*) (this=0x7f61ff7fcdb0, node=0x7f620f613960) at ../plugins/qmljs/duchain/declarationbuilder.cpp:474 #13 0x00007f61fc715d9c in QmlJS::AST::CallExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f620f613960, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:296 #14 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620f613960, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #15 0x00007f61fc6e4a5e in ContextBuilder::findType(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f620f613960) at ../plugins/qmljs/duchain/contextbuilder.cpp:57 #16 0x00007f61fc6e6cab in DeclarationBuilder::visit(QmlJS::AST::VariableDeclaration*) (this=0x7f61ff7fcdb0, node=0x7f620f6139a0) at ../plugins/qmljs/duchain/declarationbuilder.cpp:401 #17 0x00007f61fc716704 in QmlJS::AST::VariableDeclaration::accept0(QmlJS::AST::Visitor*) (this=0x7f620f6139a0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:487 #18 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620f6139a0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #19 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f620f6139a0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #20 0x00007f61fc7166a2 in QmlJS::AST::VariableDeclarationList::accept0(QmlJS::AST::Visitor*) (this=0x7f620f6139e0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:478 #21 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620f6139e0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #22 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f620f6139e0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #23 0x00007f61fc716625 in QmlJS::AST::VariableStatement::accept0(QmlJS::AST::Visitor*) (this=0x7f620f613a10, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:468 #24 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620f613a10, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #25 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f620f613a10, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #26 0x00007f61fc7165a8 in QmlJS::AST::StatementList::accept0(QmlJS::AST::Visitor*) (this=0x7f620016b190, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:458 #27 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620016b190, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #28 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f620016b190, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #29 0x00007f61fc71652b in QmlJS::AST::Block::accept0(QmlJS::AST::Visitor*) (this=0x7f6202a54160, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:448 #30 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202a54160, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #31 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202a54160, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #32 0x00007f61fc716af0 in QmlJS::AST::LocalForStatement::accept0(QmlJS::AST::Visitor*) (this=0x7f6202a54198, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:560 #33 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202a54198, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #34 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202a54198, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #35 0x00007f61fc7165a8 in QmlJS::AST::StatementList::accept0(QmlJS::AST::Visitor*) (this=0x7f620016ad18, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:458 #36 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f620016ad18, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #37 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f620016ad18, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #38 0x00007f61fc71652b in QmlJS::AST::Block::accept0(QmlJS::AST::Visitor*) (this=0x7f6202a54248, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:448 #39 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202a54248, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #40 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202a54248, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #41 0x00007f61fc716af0 in QmlJS::AST::LocalForStatement::accept0(QmlJS::AST::Visitor*) (this=0x7f6202a54280, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:560 #42 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202a54280, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #43 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202a54280, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #44 0x00007f61fc71765f in QmlJS::AST::StatementSourceElement::accept0(QmlJS::AST::Visitor*) (this=0x7f6202a54310, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:791 #45 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202a54310, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #46 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202a54310, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #47 0x00007f61fc717574 in QmlJS::AST::SourceElements::accept0(QmlJS::AST::Visitor*) (this=0x7f6202f98a58, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:772 #48 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202f98a58, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #49 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202f98a58, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #50 0x00007f61fc717489 in QmlJS::AST::FunctionBody::accept0(QmlJS::AST::Visitor*) (this=0x7f6201735ae8, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:753 #51 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6201735ae8, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #52 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6201735ae8, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #53 0x00007f61fc6edf84 in DeclarationBuilder::declareFunction<QmlJS::FunctionDeclaration>(QmlJS::AST::Node*, bool, KDevelop::Identifier const&, KDevelop::RangeInRevision const&, QmlJS::AST::Node*, KDevelop::RangeInRevision const&, QmlJS::AST::Node*, KDevelop::RangeInRevision const&) (this=0x7f61ff7fcdb0, node=0x7f6201735b00, newPrototypeContext=false, name=..., nameRange=..., parameters=0x7f6202f98920, parametersRange=..., body=0x7f6201735ae8, bodyRange=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:192 #54 0x00007f61fc6e60cb in DeclarationBuilder::visit(QmlJS::AST::FunctionExpression*) (this=0x7f61ff7fcdb0, node=0x7f6201735b00) at ../plugins/qmljs/duchain/declarationbuilder.cpp:243 #55 0x00007f61fc717394 in QmlJS::AST::FunctionExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f6201735b00, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:733 #56 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6201735b00, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #57 0x00007f61fc6e4a5e in ContextBuilder::findType(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f6201735b00) at ../plugins/qmljs/duchain/contextbuilder.cpp:57 #58 0x00007f61fc6e6cab in DeclarationBuilder::visit(QmlJS::AST::VariableDeclaration*) (this=0x7f61ff7fcdb0, node=0x7f6201735b90) at ../plugins/qmljs/duchain/declarationbuilder.cpp:401 #59 0x00007f61fc716704 in QmlJS::AST::VariableDeclaration::accept0(QmlJS::AST::Visitor*) (this=0x7f6201735b90, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:487 #60 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6201735b90, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #61 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6201735b90, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #62 0x00007f61fc7166a2 in QmlJS::AST::VariableDeclarationList::accept0(QmlJS::AST::Visitor*) (this=0x7f6201735bd0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:478 #63 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6201735bd0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #64 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6201735bd0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #65 0x00007f61fc716625 in QmlJS::AST::VariableStatement::accept0(QmlJS::AST::Visitor*) (this=0x7f6201735c00, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:468 #66 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6201735c00, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #67 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6201735c00, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #68 0x00007f61fc71765f in QmlJS::AST::StatementSourceElement::accept0(QmlJS::AST::Visitor*) (this=0x7f6201735c38, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:791 #69 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6201735c38, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #70 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6201735c38, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #71 0x00007f61fc717574 in QmlJS::AST::SourceElements::accept0(QmlJS::AST::Visitor*) (this=0x7f6200de5420, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:772 #72 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6200de5420, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #73 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6200de5420, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #74 0x00007f61fc717489 in QmlJS::AST::FunctionBody::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf4b0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:753 #75 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf4b0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #76 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf4b0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #77 0x00007f61fc6edf84 in DeclarationBuilder::declareFunction<QmlJS::FunctionDeclaration>(QmlJS::AST::Node*, bool, KDevelop::Identifier const&, KDevelop::RangeInRevision const&, QmlJS::AST::Node*, KDevelop::RangeInRevision const&, QmlJS::AST::Node*, KDevelop::RangeInRevision const&) (this=0x7f61ff7fcdb0, node=0x7f6202fdf4c8, newPrototypeContext=false, name=..., nameRange=..., parameters=0x0, parametersRange=..., body=0x7f6202fdf4b0, bodyRange=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:192 #78 0x00007f61fc6e60cb in DeclarationBuilder::visit(QmlJS::AST::FunctionExpression*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf4c8) at ../plugins/qmljs/duchain/declarationbuilder.cpp:243 #79 0x00007f61fc717394 in QmlJS::AST::FunctionExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf4c8, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:733 #80 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf4c8, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #81 0x00007f61fc6e4a5e in ContextBuilder::findType(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf4c8) at ../plugins/qmljs/duchain/contextbuilder.cpp:57 #82 0x00007f61fc6e6559 in DeclarationBuilder::inferArgumentsFromCall(QmlJS::AST::Node*, QmlJS::AST::ArgumentList*) (this=0x7f61ff7fcdb0, base=0x7f6202fdf4c8, arguments=0x0) at ../plugins/qmljs/duchain/declarationbuilder.cpp:323 #83 0x00007f61fc6e7173 in DeclarationBuilder::visit(QmlJS::AST::CallExpression*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf558) at ../plugins/qmljs/duchain/declarationbuilder.cpp:474 #84 0x00007f61fc715d9c in QmlJS::AST::CallExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf558, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:296 #85 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf558, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #86 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf558, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #87 0x00007f61fc71542d in QmlJS::AST::NestedExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf598, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:91 #88 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf598, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #89 0x00007f61fc6e4a5e in ContextBuilder::findType(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf598) at ../plugins/qmljs/duchain/contextbuilder.cpp:57 #90 0x00007f61fc6e6e1f in DeclarationBuilder::visit(QmlJS::AST::BinaryExpression*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf5d0) at ../plugins/qmljs/duchain/declarationbuilder.cpp:423 #91 0x00007f61fc716368 in QmlJS::AST::BinaryExpression::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf5d0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:416 #92 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf5d0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #93 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf5d0, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #94 0x00007f61fc7167e1 in QmlJS::AST::ExpressionStatement::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf608, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:505 #95 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf608, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #96 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf608, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #97 0x00007f61fc71765f in QmlJS::AST::StatementSourceElement::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf630, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:791 #98 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf630, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #99 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf630, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #100 0x00007f61fc717574 in QmlJS::AST::SourceElements::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf648, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:772 #101 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf648, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #102 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf648, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #103 0x00007f61fc7174f7 in QmlJS::AST::Program::accept0(QmlJS::AST::Visitor*) (this=0x7f6202fdf668, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:762 #104 0x00007f61fc71531a in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7f6202fdf668, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #105 0x00007f61fc715366 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7f6202fdf668, visitor=0x7f61ff7fcf98) at ../plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #106 0x00007f61fc6e4baa in ContextBuilder::startVisiting(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf668) at ../plugins/qmljs/duchain/contextbuilder.cpp:79 #107 0x00007f61fc6e5e5f in DeclarationBuilder::startVisiting(QmlJS::AST::Node*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf668) at ../plugins/qmljs/duchain/declarationbuilder.cpp:110 #108 0x00007f61fc6c6bf8 in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf668, context=0x7f62033f33a0) at ../kdevplatform/language/duchain/builders/abstractcontextbuilder.h:127 #109 0x00007f61fc6c9dbd in KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7f61ff7fcdb0, node=0x7f6202fdf668, context=0x7f62033f33a0) at ../kdevplatform/language/duchain/builders/abstracttypebuilder.h:84 #110 0x00007f61fc6c94cd in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f61ff7fcdb0, url=..., node=0x7f6202fdf668, updateContext=...) at ../kdevplatform/language/duchain/builders/abstractcontextbuilder.h:106 #111 0x00007f61fc6e5b94 in DeclarationBuilder::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=0x7f61ff7fcdb0, url=..., node=0x7f6202fdf668, updateContext_=...) at ../plugins/qmljs/duchain/declarationbuilder.cpp:81 #112 0x00007f61fc6c32a0 in QmlJsParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0x5630f005d110, pointer=..., thread=0x7f61f82df3d0) at ../plugins/qmljs/qmljsparsejob.cpp:152 #113 0x00007f62a3d2712c in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #114 0x00007f62a3d27739 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #115 0x00007f62a3d26742 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #116 0x00007f62a3d25fd1 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #117 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x7f61f82df3d0) at thread/qthread_unix.cpp:329 #118 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #119 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 22 (Thread 0x7f61fffff640 (LWP 671142) "Queue(0x5630d46"): #1 0x00007f62a10340d4 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5630d46ecf40) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5630d46e5590, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f62a3d247d1 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f62a3d28469 in () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f62a3d238b3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f62a3d284c1 in () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007f62a3d238b3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007f62a3d25f31 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630dbeccdb0) at thread/qthread_unix.cpp:329 #10 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #11 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 21 (Thread 0x7f6213fff640 (LWP 670767) "QQuickXmlQueryE"): #1 0x00007f62a0b1db35 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007f629d5b053c in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d6045d6 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #5 0x00007f62a126c95c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6208bccc50, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #6 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f6213ffe820, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #7 0x00007f62a102cca2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #8 0x00007f621335283a in () at /usr/lib/qt/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so #9 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630dd8f07a0) at thread/qthread_unix.cpp:329 #10 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #11 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 20 (Thread 0x7f621c05a640 (LWP 670432) "KDevelop::Compl"): #1 0x00007f62a0b1db35 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007f629d5b04b4 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d6045d6 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #5 0x00007f62a126c95c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6214000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #6 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f621c0597c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #7 0x00007f62a102cca2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #8 0x00007f62a3fafd5a in KDevelop::CompletionWorkerThread::run() (this=0x5630d4b87e80) at ../kdevplatform/language/codecompletion/codecompletionmodel.cpp:88 #9 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630d4b87e80) at thread/qthread_unix.cpp:329 #10 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #11 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 19 (Thread 0x7f624affd640 (LWP 670421) "Qt bearer threa"): #1 0x00007f62a0b1db35 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007f629d6046d2 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007f62a126c95c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f623c001640, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f624affc840, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #6 0x00007f62a102cca2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630d4976b70) at thread/qthread_unix.cpp:329 #8 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 18 (Thread 0x7f624b7fe640 (LWP 670419) "QQmlThread"): #1 0x00007f62a0b1db35 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007f629d5b04b4 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d6045d6 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #5 0x00007f62a126c95c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6238000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #6 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f624b7fd820, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #7 0x00007f62a102cca2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #8 0x00007f62a30374b9 in () at /usr/lib/libQt5Qml.so.5 #9 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630d47ff1a0) at thread/qthread_unix.cpp:329 #10 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #11 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 17 (Thread 0x7f6249ffb640 (LWP 670415) "QThread"): #1 0x00007f62a0b23137 in nanosleep () at /usr/lib/libc.so.6 #2 0x00007f62a126c29f in qt_nanosleep(timespec) (amount=...) at kernel/qelapsedtimer_unix.cpp:195 #3 0x00007f62a3ede51b in KDevelop::DUChainLock::lockForWrite(unsigned int) (this=0x7f62a4566fa0 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder+32>, timeout=0) at ../kdevplatform/language/duchain/duchainlock.cpp:170 #4 0x00007f62a3ede855 in KDevelop::DUChainWriteLocker::lock() (this=0x7f6249ffa190) at ../kdevplatform/language/duchain/duchainlock.cpp:277 #5 0x00007f62a3ede7ee in KDevelop::DUChainWriteLocker::DUChainWriteLocker(KDevelop::DUChainLock*, unsigned int) (this=0x7f6249ffa190, duChainLock=0x7f62a4566fa0 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder+32>, timeout=0) at ../kdevplatform/language/duchain/duchainlock.cpp:261 #6 0x00007f62a3e52f57 in KDevelop::DUChainPrivate::doMoreCleanup(int, KDevelop::DUChainPrivate::LockFlag) (this=0x7f62a4566f80 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder>, retries=1, lockFlag=KDevelop::DUChainPrivate::TryLock) at ../kdevplatform/language/duchain/duchain.cpp:768 #7 0x00007f62a3e50563 in KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}::operator()() const (__closure=0x7f6234001650) at ../kdevplatform/language/duchain/duchain.cpp:328 #8 0x00007f62a3e6ee39 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}>::call(KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}&, void**) (f=..., arg=0x7f6249ffa3d0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146 #9 0x00007f62a3e6cd5d in QtPrivate::Functor<KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}, 0>::call<QtPrivate::List<>, void>(KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}&, void*, void**) (f=..., arg=0x7f6249ffa3d0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256 #10 0x00007f62a3e66d68 in QtPrivate::QFunctorSlotObject<KDevelop::DUChainPrivate::CleanupThread::run()::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x7f6234001640, r=0x7f6249ffa840, a=0x7f6249ffa3d0, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443 #11 0x00007f62a124b036 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7f6249ffa3d0, r=0x7f6249ffa840, this=0x7f6234001640) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #12 doActivate<false>(QObject*, int, void**) (sender=0x7f6249ffa840, signal_index=3, argv=argv@entry=0x7f6249ffa3d0) at kernel/qobject.cpp:3886 #13 0x00007f62a12441d0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f62a14aa900 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7f6249ffa3d0) at kernel/qobject.cpp:3946 #14 0x00007f62a124f0ab in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205 #15 0x00007f62a124071f in QObject::event(QEvent*) (this=0x7f6249ffa840, e=0x7f6249ffa540) at kernel/qobject.cpp:1336 #16 0x00007f62a209a752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x7f6249ffa840, e=0x7f6249ffa540) at kernel/qapplication.cpp:3630 #17 0x00007f62a1213cda in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7f6249ffa840, event=0x7f6249ffa540) at kernel/qcoreapplication.cpp:1063 #18 0x00007f62a126bcc5 in QTimerInfoList::activateTimers() (this=0x7f62340017e0) at kernel/qtimerinfo_unix.cpp:643 #19 0x00007f62a126c5aa in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183 #20 idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230 #21 0x00007f629d5b0914 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #22 0x00007f629d6047d1 in () at /usr/lib/libglib-2.0.so.0 #23 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #24 0x00007f62a126c941 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6234000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #25 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f6249ffa7d0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #26 0x00007f62a102cca2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #27 0x00007f62a3e505fd in KDevelop::DUChainPrivate::CleanupThread::run() (this=0x5630d4880770) at ../kdevplatform/language/duchain/duchain.cpp:331 #28 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630d4880770) at thread/qthread_unix.cpp:329 #29 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #30 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 16 (Thread 0x7f624bfff640 (LWP 667326) "gdbus"): #1 0x00007f62a0b1db35 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007f629d6046d2 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d5afe63 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #4 0x00007f629394dfe8 in () at /usr/lib/libgio-2.0.so.0 #5 0x00007f629d5ddce1 in () at /usr/lib/libglib-2.0.so.0 #6 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 15 (Thread 0x7f6260a92640 (LWP 667325) "gmain"): #1 0x00007f62a0b1db35 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007f629d6046d2 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007f629d5af172 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007f629d5ddce1 in () at /usr/lib/libglib-2.0.so.0 #6 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 14 (Thread 0x7f6261c6f640 (LWP 667321) "QDBusConnection"): #1 0x00007f629d5fdda6 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f629d5fe9b9 in sysprof_collector_mark_vprintf () at /usr/lib/libglib-2.0.so.0 #3 0x00007f629d5ff8ed in () at /usr/lib/libglib-2.0.so.0 #4 0x00007f629d5b0579 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #5 0x00007f629d6045d6 in () at /usr/lib/libglib-2.0.so.0 #6 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #7 0x00007f62a126c95c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6250000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #8 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f6261c6e7f0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #9 0x00007f62a102cca2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #10 0x00007f62a1e45098 in QDBusConnectionManager::run() (this=0x7f62a1eb3080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179 #11 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x7f62a1eb3080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329 #12 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #13 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 13 (Thread 0x7f6262ffd640 (LWP 667318) "kdevelop:gdrv0"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 12 (Thread 0x7f62637fe640 (LWP 667317) "kdevelop:shlo1"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7f6263fff640 (LWP 667316) "kdevelop:shlo0"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 10 (Thread 0x7f6280be0640 (LWP 667315) "kdevelop:sh2"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7f62813e1640 (LWP 667314) "kdevelop:sh1"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7f6281be2640 (LWP 667313) "kdevelop:sh0"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7f62823e3640 (LWP 667312) "kdevelo:disk$3"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7f6282be4640 (LWP 667311) "kdevelo:disk$2"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7f628ca58640 (LWP 667310) "kdevelo:disk$1"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7f628d259640 (LWP 667309) "kdevelo:disk$0"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7f628dbaf640 (LWP 667308) "kdevelop:cs0"): #1 0x00007f628e1e013c in () at /usr/lib/dri/radeonsi_dri.so #2 0x00007f628e1e0038 in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7f628ff8a640 (LWP 667307) "QXcbEventQueue"): #1 0x00007f629fead63b in () at /usr/lib/libxcb.so.1 #2 0x00007f629feaf37b in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007f62900cff61 in QXcbEventQueue::run() (this=0x5630d3a7eb00) at qxcbeventqueue.cpp:228 #4 0x00007f62a102de8f in QThreadPrivate::start(void*) (arg=0x5630d3a7eb00) at thread/qthread_unix.cpp:329 #5 0x00007f62a006b3e9 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007f62a0b56293 in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7f62904d3580 (LWP 667304) "kdevelop"): #1 0x00007f62a10340d4 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5630d47698d0) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x5630d4829c38, mutex=mutex@entry=0x5630d4829c18, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f62a102db3a in QThread::wait(QDeadlineTimer) (this=<optimized out>, deadline=...) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270 #4 0x00007f62a3e504f0 in KDevelop::DUChainPrivate::CleanupThread::stopThread() (this=0x5630d4880770) at ../kdevplatform/language/duchain/duchain.cpp:316 #5 0x00007f62a3e50f1b in KDevelop::DUChainPrivate::~DUChainPrivate() (this=0x7f62a4566f80 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder>, __in_chrg=<optimized out>) at ../kdevplatform/language/duchain/duchain.cpp:399 #6 0x00007f62a3e4aea6 in KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::Holder::~Holder() (this=0x7f62a4566f80 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder>, __in_chrg=<optimized out>) at ../kdevplatform/language/duchain/duchain.cpp:1207 #7 0x00007f62a0a95db7 in __run_exit_handlers () at /usr/lib/libc.so.6 #8 0x00007f62a0a95f5e in () at /usr/lib/libc.so.6 #9 0x00007f6280149b01 in () at /usr/lib/libgdk-x11-2.0.so.0 #10 0x00007f629ff108ee in _XIOError () at /usr/lib/libX11.so.6 #11 0x00007f629ff0e007 in _XEventsQueued () at /usr/lib/libX11.so.6 #12 0x00007f629feff992 in XPending () at /usr/lib/libX11.so.6 #13 0x00007f628013f320 in () at /usr/lib/libgdk-x11-2.0.so.0 #14 0x00007f629d5b04cf in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #15 0x00007f629d6045d6 in () at /usr/lib/libglib-2.0.so.0 #16 0x00007f629d5af121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #17 0x00007f62a126c941 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5630d3a7c540, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #18 0x00007f62a121265c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe28992ed0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #19 0x00007f62a121aaf4 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #20 0x00005630d2ad474d in main(int, char**) (argc=3, argv=0x7ffe28993348) at ../app/main.cpp:856 [Inferior 1 (process 667304) detached] A possibly relevant merge request was started @ https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/445 Git commit 1a1e5b15e2097fb4e491ab7d67d8aae42008d298 by Milian Wolff. Committed on 03/03/2023 at 08:35. Pushed by mwolff into branch 'master'. Keep m_nextBucketHash alive across convertMonsterBucket changes When a bucket is part of a hash clash it may have entries in the m_nextBucketHash. When we then later convert the bucket from/to a monster bucket, we need to keep that data alive, otherwise we run into the infamous `bucketForIndex(bucketNumber)->noNextBuckets()` assertion. The expanded unit test easily triggers this behavior which was previously not covered: we now also test situations with two monster buckets, and three items instead of just two. Furthermore, we test all possible permutations, which runs quickly and previously always triggered the assertion. This patch here fixes that situation, by keeping the m_nextBucketHash data alive across the convertMonsterBucket changes. FIXED-IN: 5.11.230400 M +37 -5 kdevplatform/serialization/itemrepository.h M +72 -24 kdevplatform/serialization/tests/test_itemrepository.cpp https://invent.kde.org/kdevelop/kdevelop/commit/1a1e5b15e2097fb4e491ab7d67d8aae42008d298 |