Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-32612

Crash on project rescan - AsyncProcessor

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • Qt Creator 16.0.0
    • Editors
    • None
    • Linux/X11

    Description

      I have a Creator project opened in Creator. After git pull (done outside of Creator) I got a long freeze which ended with a crash.

      The crash is in non-main thread:

      Thread 1 (Thread 0x79b9137fe6c0 (LWP 114496)):
      #0  0x000079b97c26dd28 in vtable for __cxxabiv1::__class_type_info () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #1  0x000079b96c338ce5 in operator() (__closure=0x79b9137fd9f0) at /home/jarek/dev/creator-16/src/plugins/texteditor/codeassist/asyncprocessor.cpp:26
      #2  0x000079b96c33a0b2 in std::__invoke_impl<TextEditor::IAssistProposal*, TextEditor::AsyncProcessor::perform()::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/13/bits/invoke.h:61
      #3  0x000079b96c33a036 in std::__invoke<TextEditor::AsyncProcessor::perform()::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/13/bits/invoke.h:96
      #4  0x000079b96c339f8b in std::invoke<TextEditor::AsyncProcessor::perform()::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/13/functional:113
      #5  0x000079b96c339e62 in operator() (__closure=0x79b9137fdaef, function=...) at /home/jarek/dev/qt-68/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:116
      #6  0x000079b96c33a08c in std::__invoke_impl<TextEditor::IAssistProposal*, const QtConcurrent::StoredFunctionCall<TextEditor::AsyncProcessor::perform()::<lambda()> >::runFunctor()::<lambda(std::decay_t<TextEditor::AsyncProcessor::perform()::<lambda()> >)>&, TextEditor::AsyncProcessor::perform()::<lambda()> >(std::__invoke_other, const struct {...} &) (__f=...) at /usr/include/c++/13/bits/invoke.h:61
      #7  0x000079b96c33a002 in std::__invoke<const QtConcurrent::StoredFunctionCall<TextEditor::AsyncProcessor::perform()::<lambda()> >::runFunctor()::<lambda(std::decay_t<TextEditor::AsyncProcessor::perform()::<lambda()> >)>&, TextEditor::AsyncProcessor::perform()::<lambda()> >(const struct {...} &) (__fn=...) at /usr/include/c++/13/bits/invoke.h:96
      #8  0x000079b96c339ea3 in std::__apply_impl<const QtConcurrent::StoredFunctionCall<TextEditor::AsyncProcessor::perform()::<lambda()> >::runFunctor()::<lambda(std::decay_t<TextEditor::AsyncProcessor::perform()::<lambda()> >)>&, std::tuple<TextEditor::AsyncProcessor::perform()::<lambda()> >, 0>(const struct {...} &, std::tuple<TextEditor::AsyncProcessor::perform()::<lambda()> > &&, std::index_sequence) (__f=..., __t=...) at /usr/include/c++/13/tuple:2302
      #9  0x000079b96c339ee0 in std::apply<const QtConcurrent::StoredFunctionCall<TextEditor::AsyncProcessor::perform()::<lambda()> >::runFunctor()::<lambda(std::decay_t<TextEditor::AsyncProcessor::perform()::<lambda()> >)>&, std::tuple<TextEditor::AsyncProcessor::perform()::<lambda()> > >(const struct {...} &, std::tuple<TextEditor::AsyncProcessor::perform()::<lambda()> > &&) (__f=..., __t=...) at /usr/include/c++/13/tuple:2313
      #10 0x000079b96c339f28 in QtConcurrent::StoredFunctionCall<TextEditor::AsyncProcessor::perform()::<lambda()> >::runFunctor(void) (this=0x6150dd1d5650) at /home/jarek/dev/qt-68/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:122
      #11 0x000079b96c33ade8 in QtConcurrent::RunFunctionTaskBase<TextEditor::IAssistProposal*>::run (this=0x6150dd1d5650) at /home/jarek/dev/qt-68/qtbase/src/concurrent/qtconcurrentrunbase.h:83
      #12 0x000079b97c8d27de in QThreadPoolThread::run (this=0x6150da666ce0) at /home/jarek/dev/qt-68/qtbase/src/corelib/thread/qthreadpool.cpp:71
      #13 0x000079b97c8c1344 in operator() (__closure=0x79b9137fdd00) at /home/jarek/dev/qt-68/qtbase/src/corelib/thread/qthread_unix.cpp:375
      #14 0x000079b97c8c27bd in (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >(struct {...} &&) (t=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/thread/qthread_unix.cpp:311
      #15 0x000079b97c8c1463 in QThreadPrivate::start (arg=0x6150da666ce0) at /home/jarek/dev/qt-68/qtbase/src/corelib/thread/qthread_unix.cpp:339
      #16 0x000079b97bc9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
      #17 0x000079b97bd29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      At the same time, the main thread looks like:

      Thread 65 (Thread 0x79b97e575680 (LWP 22863)):
      #0  (anonymous namespace)::hash2x16bytes<(ZeroExtension)0> (state0=..., state1=..., src0=0x6150daa719d0, src1=0x6150daa719d6) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.cpp:438
      #1  0x000079b97c4ef8b7 in aeshash128_16to32<(ZeroExtension)0> (state0=..., state1=..., src=0x6150daa719d0, srcend=0x6150daa719e6) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.cpp:486
      #2  0x000079b97c4ee258 in aeshash256<(ZeroExtension)0> (p=0x6150daa719d0 "(", len=22, seed=17875278906290534409, seed2=14615571540029332284) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.cpp:664
      #3  0x000079b97c4edd1d in aeshash<>(const uchar *, size_t, size_t, size_t) (p=0x6150daa719d0 "(", len=22, seed=17875278906290534409, seed2=14615571540029332284) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.cpp:711
      #4  0x000079b97c4ece60 in qHashBits (p=0x6150daa719d0, size=22, seed=17875278906290534409) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.cpp:866
      #5  0x000079b97c4ecf42 in qHash (key=..., seed=17875278906290534409) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.cpp:882
      #6  0x000079b97f6584e6 in qHash (key=..., seed=17875278906290534409) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhashfunctions.h:201
      #7  0x000079b97f65d042 in QHashPrivate::calculateHash<QString> (t=..., seed=17875278906290534409) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:58
      #8  0x000079b97f65b7f9 in QHashPrivate::Data<QHashPrivate::Node<QString, QHashDummyValue> >::findBucket<QString> (this=0x79b7f8078590, key=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:690
      #9  0x000079b97f65ab88 in QHashPrivate::Data<QHashPrivate::Node<QString, QHashDummyValue> >::findOrInsert<QString> (this=0x79b7f8078590, key=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:725
      #10 0x000079b97f65ea1a in QHash<QString, QHashDummyValue>::emplace_helper<QHashDummyValue const&> (this=0x79b97fd62d38 <Utils::StringTable::stringTable()::theStringTable+24>, key=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:1380
      #11 0x000079b97f65d436 in QHash<QString, QHashDummyValue>::emplace<QHashDummyValue const&> (this=0x79b97fd62d38 <Utils::StringTable::stringTable()::theStringTable+24>, key=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:1360
      #12 0x000079b97f65be51 in QHash<QString, QHashDummyValue>::emplace<QHashDummyValue const&> (this=0x79b97fd62d38 <Utils::StringTable::stringTable()::theStringTable+24>, key=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:1351
      #13 0x000079b97f65aac7 in QHash<QString, QHashDummyValue>::insert (this=0x79b97fd62d38 <Utils::StringTable::stringTable()::theStringTable+24>, key=..., value=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qhash.h:1329
      #14 0x000079b97f659b1f in QSet<QString>::insert (this=0x79b97fd62d38 <Utils::StringTable::stringTable()::theStringTable+24>, value=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/tools/qset.h:157
      #15 0x000079b97f97e874 in Utils::StringTable::StringTablePrivate::insert (this=0x79b97fd62d20 <Utils::StringTable::stringTable()::theStringTable>, string=...) at /home/jarek/dev/creator-16/src/libs/utils/stringtable.cpp:76
      #16 0x000079b97f97e78c in Utils::StringTable::insert (string=...) at /home/jarek/dev/creator-16/src/libs/utils/stringtable.cpp:53
      #17 0x000079b96663e81c in CppEditor::SearchSymbols::addChildItem (this=0x6150d98d0e00, symbolName=..., symbolType=..., symbolScope=..., itemType=CppEditor::IndexItem::Function, symbol=0x79b7d33344d0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:287
      #18 0x000079b96663ef30 in CppEditor::SearchSymbols::processFunction<CPlusPlus::Function> (this=0x6150d98d0e00, func=0x79b7d33344d0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:333
      #19 0x000079b96663da85 in CppEditor::SearchSymbols::visit (this=0x6150d98d0e00, symbol=0x79b7d33344d0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:87
      #20 0x000079b965db4640 in CPlusPlus::Function::visitSymbol0 (this=0x79b7d33344d0, visitor=0x6150d98d0e00) at /home/jarek/dev/creator-16/src/libs/3rdparty/cplusplus/Symbols.cpp:394
      #21 0x000079b965db2bb3 in CPlusPlus::Symbol::visitSymbol (this=0x79b7d33344d0, visitor=0x6150d98d0e00) at /home/jarek/dev/creator-16/src/libs/3rdparty/cplusplus/Symbol.cpp:135
      #22 0x000079b96663eac7 in CppEditor::SearchSymbols::accept (this=0x6150d98d0e00, symbol=0x79b7d33344d0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.h:39
      #23 0x000079b96663f24c in CppEditor::SearchSymbols::processClass<CPlusPlus::Class> (this=0x6150d98d0e00, clazz=0x79b7d32c5730) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:314
      #24 0x000079b96663dfcd in CppEditor::SearchSymbols::visit (this=0x6150d98d0e00, symbol=0x79b7d32c5730) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:135
      #25 0x000079b965db40c8 in CPlusPlus::Class::visitSymbol0 (this=0x79b7d32c5730, visitor=0x6150d98d0e00) at /home/jarek/dev/creator-16/src/libs/3rdparty/cplusplus/Symbols.cpp:650
      #26 0x000079b965db2bb3 in CPlusPlus::Symbol::visitSymbol (this=0x79b7d32c5730, visitor=0x6150d98d0e00) at /home/jarek/dev/creator-16/src/libs/3rdparty/cplusplus/Symbol.cpp:135
      #27 0x000079b96663eac7 in CppEditor::SearchSymbols::accept (this=0x6150d98d0e00, symbol=0x79b7d32c5730) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.h:39
      #28 0x000079b96663f24c in CppEditor::SearchSymbols::processClass<CPlusPlus::Class> (this=0x6150d98d0e00, clazz=0x79b7d32f21a0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:314
      #29 0x000079b96663dfcd in CppEditor::SearchSymbols::visit (this=0x6150d98d0e00, symbol=0x79b7d32f21a0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:135
      #30 0x000079b965db40c8 in CPlusPlus::Class::visitSymbol0 (this=0x79b7d32f21a0, visitor=0x6150d98d0e00) at /home/jarek/dev/creator-16/src/libs/3rdparty/cplusplus/Symbols.cpp:650
      #31 0x000079b965db2bb3 in CPlusPlus::Symbol::visitSymbol (this=0x79b7d32f21a0, visitor=0x6150d98d0e00) at /home/jarek/dev/creator-16/src/libs/3rdparty/cplusplus/Symbol.cpp:135
      #32 0x000079b96663eac7 in CppEditor::SearchSymbols::accept (this=0x6150d98d0e00, symbol=0x79b7d32f21a0) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.h:39
      #33 0x000079b96663d580 in CppEditor::SearchSymbols::operator() (this=0x6150d98d0e00, doc=..., scope=...) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.cpp:55
      #34 0x000079b96635014d in CppEditor::SearchSymbols::operator() (this=0x6150d98d0e00, doc=...) at /home/jarek/dev/creator-16/src/plugins/cppeditor/searchsymbols.h:31
      #35 0x000079b9663589b8 in CppEditor::CppLocatorData::flushPendingDocument (this=0x6150d98d0df0, force=false) at /home/jarek/dev/creator-16/src/plugins/cppeditor/cpplocatordata.cpp:91
      #36 0x000079b96635860a in CppEditor::CppLocatorData::onDocumentUpdated (this=0x6150d98d0df0, document=...) at /home/jarek/dev/creator-16/src/plugins/cppeditor/cpplocatordata.cpp:57
      #37 0x000079b9663c3de6 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QSharedPointer<CPlusPlus::Document> >, void, void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&)>::call(void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&), CppEditor::CppLocatorData*, void**)::{lambda()#1}::operator()() const (__closure=0x7fff350dedd0) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobjectdefs_impl.h:152
      #38 0x000079b9663ca009 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QSharedPointer<CPlusPlus::Document> >, void, void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&)>::call(void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&), CppEditor::CppLocatorData*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QSharedPointer<CPlusPlus::Document> >, void, void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&)>::call(void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&), CppEditor::CppLocatorData*, void**)::{lambda()#1}&&) (args=0x79b7d330b858, fn=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
      #39 0x000079b9663c3e5a in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QSharedPointer<CPlusPlus::Document> >, void, void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&)>::call (f=(void (CppEditor::CppLocatorData::*)(class CppEditor::CppLocatorData * const, const class QSharedPointer<CPlusPlus::Document> &)) 0x79b9663583d6 <CppEditor::CppLocatorData::onDocumentUpdated(QSharedPointer<CPlusPlus::Document> const&)>, o=0x6150d98d0df0, arg=0x79b7d330b858) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobjectdefs_impl.h:151
      #40 0x000079b9663bc472 in QtPrivate::FunctionPointer<void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&)>::call<QtPrivate::List<QSharedPointer<CPlusPlus::Document> >, void> (f=(void (CppEditor::CppLocatorData::*)(class CppEditor::CppLocatorData * const, const class QSharedPointer<CPlusPlus::Document> &)) 0x79b9663583d6 <CppEditor::CppLocatorData::onDocumentUpdated(QSharedPointer<CPlusPlus::Document> const&)>, o=0x6150d98d0df0, arg=0x79b7d330b858) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobjectdefs_impl.h:199
      #41 0x000079b9663b3b03 in QtPrivate::QCallableObject<void (CppEditor::CppLocatorData::*)(QSharedPointer<CPlusPlus::Document> const&), QtPrivate::List<QSharedPointer<CPlusPlus::Document> >, void>::impl (which=1, this_=0x6150d9934890, r=0x6150d98d0df0, a=0x79b7d330b858, ret=0x0) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobjectdefs_impl.h:570
      #42 0x000079b97c5ec35b in QtPrivate::QSlotObjectBase::call (this=0x6150d9934890, r=0x6150d98d0df0, a=0x79b7d330b858) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
      #43 0x000079b97c6750a7 in QMetaCallEvent::placeMetaCall (this=0x79b7d330b810, object=0x6150d98d0df0) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobject.cpp:620
      #44 0x000079b97c67664d in QObject::event (this=0x6150d98d0df0, e=0x79b7d330b810) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qobject.cpp:1418
      #45 0x000079b97e7aa890 in QApplicationPrivate::notify_helper (this=0x6150d8a644d0, receiver=0x6150d98d0df0, e=0x79b7d330b810) at /home/jarek/dev/qt-68/qtbase/src/widgets/kernel/qapplication.cpp:3296
      #46 0x000079b97e7aa682 in QApplication::notify (this=0x6150d8a63970, receiver=0x6150d98d0df0, e=0x79b7d330b810) at /home/jarek/dev/qt-68/qtbase/src/widgets/kernel/qapplication.cpp:3247
      #47 0x000079b97c5e506b in QCoreApplication::notifyInternal2 (receiver=0x6150d98d0df0, event=0x79b7d330b810) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qcoreapplication.cpp:1172
      #48 0x000079b97c5e5c11 in QCoreApplication::sendEvent (receiver=0x6150d98d0df0, event=0x79b7d330b810) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qcoreapplication.cpp:1612
      #49 0x000079b97c5e6c0d in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6150d8a4df10) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qcoreapplication.cpp:1946
      #50 0x000079b97c8c4775 in QEventDispatcherUNIX::processEvents (this=0x6150d8a66060, flags=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:418
      #51 0x000079b978658966 in QXcbUnixEventDispatcher::processEvents (this=0x6150d8a66060, flags=...) at /home/jarek/dev/qt-68/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:24
      #52 0x000079b97c5fc345 in QEventLoop::processEvents (this=0x7fff350df590, flags=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qeventloop.cpp:103
      #53 0x000079b97c5fc6b4 in QEventLoop::exec (this=0x7fff350df590, flags=...) at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qeventloop.cpp:185
      #54 0x000079b97c5e59c6 in QCoreApplication::exec () at /home/jarek/dev/qt-68/qtbase/src/corelib/kernel/qcoreapplication.cpp:1515
      #55 0x000079b97d60964e in QGuiApplication::exec () at /home/jarek/dev/qt-68/qtbase/src/gui/kernel/qguiapplication.cpp:1975
      #56 0x000079b97e7a7877 in QApplication::exec () at /home/jarek/dev/qt-68/qtbase/src/widgets/kernel/qapplication.cpp:2564
      #57 0x00006150d0fb3b98 in main (argc=1, argv=0x7fff350dfe98) at /home/jarek/dev/creator-16/src/app/main.cpp:975
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            davschul David Schulz
            jkobus Jarek Kobus
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes