Application: kdevelop (5.7.220370 (22.03.70)) (Compiled from sources) Qt Version: 5.15.2 Frameworks Version: 5.87.0 Operating System: Linux 5.10.70-1-MANJARO x86_64 Windowing System: X11 Drkonqi Version: 5.22.5 Distribution: Manjaro Linux -- Information about the crash: - What I was doing when the application crashed: 1. Open a session with 3 projects (kate, ktexteditor, syntax-highlighting) and 10-20 open files. 2. Open all files in syntax-highlighting/data/syntax. 3. Close all files. 4. Open all files in syntax-highlighting/data/syntax. KDevelop crashed in a few seconds or minutes. The reporter is unsure if this crash is reproducible. -- Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault [KCrash Handler] #4 std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x5) at /usr/include/c++/11.1.0/bits/atomic_base.h:479 #5 QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=...) at /usr/include/qt/QtCore/qatomic_cxx11.h:239 #6 QBasicAtomicInteger<int>::loadRelaxed() const (this=0x5) at /usr/include/qt/QtCore/qbasicatomic.h:107 #7 QWeakPointer<QObject>::internalData() const (this=0x7efc4e2aaae0) at /usr/include/qt/QtCore/qsharedpointer_impl.h:698 #8 QPointer<QObject>::data() const (this=0x7efc4e2aaae0) at /usr/include/qt/QtCore/qpointer.h:77 #9 DocumentParsePlan::removeTargetsForListener(QObject*) (notifyWhenReady=0x0, this=0x7efc4d895df0) at /home/Fast_storage/kdevelop/kdevplatform/language/backgroundparser/backgroundparser.cpp:168 #10 KDevelop::BackgroundParser::removeDocument(KDevelop::IndexedString const&, QObject*) (this=<optimized out>, url=..., notifyWhenReady=0x0) at /home/Fast_storage/kdevelop/kdevplatform/language/backgroundparser/backgroundparser.cpp:683 #11 0x00007efc9eef48d5 in ParseSession::scheduleForParsing(KDevelop::IndexedString const&, int) (url=..., priority=priority@entry=-1) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/parsesession.cpp:264 #12 0x00007efc9eef49eb in ParseSession::contextOfFile(QString const&, KDevelop::IndexedString const&, int) (fileName=..., url=..., ownPriority=ownPriority@entry=0) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/parsesession.cpp:241 #13 0x00007efc9ef0eb49 in QmlJS::NodeJS::moduleExports(QString const&, KDevelop::IndexedString const&) (this=0x7efc75aee210, this@entry=0x7efc4d186ed0, moduleName=..., url=...) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/frameworks/nodejs.cpp:84 #14 0x00007efc9ef0eedf in QmlJS::NodeJS::moduleMember(QString const&, QString const&, KDevelop::IndexedString const&) (this=this@entry=0x7efc4d186ed0, moduleName=..., memberName=..., url=...) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/frameworks/nodejs.cpp:113 #15 0x00007efc9eef2dee in QmlJS::getInternalContext(KDevelop::DUChainPointer<KDevelop::Declaration> const&) (declaration=...) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/helper.cpp:228 #16 0x00007efc9eef7be4 in DeclarationBuilder::visit(QmlJS::AST::BinaryExpression*) (this=0x7efc4f6af6d0, node=0x7efc75aee3e8) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/declarationbuilder.cpp:416 #17 0x00007efc9ef19c38 in QmlJS::AST::BinaryExpression::accept0(QmlJS::AST::Visitor*) (this=0x7efc4eee7120, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:416 #18 0x00007efc9ef18efd in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7efc4eee7120, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #19 0x00007efc9ef1a035 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (visitor=0x7efc4f6af8b8, node=<optimized out>) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #20 QmlJS::AST::ExpressionStatement::accept0(QmlJS::AST::Visitor*) (this=0x7efc4eee7158, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:505 #21 0x00007efc9ef18efd in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7efc4eee7158, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #22 0x00007efc9ef1aea5 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (visitor=0x7efc4f6af8b8, node=<optimized out>) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #23 QmlJS::AST::StatementSourceElement::accept0(QmlJS::AST::Visitor*) (this=0x7efc4eee7180, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:791 #24 0x00007efc9ef18efd in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7efc4eee7180, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #25 0x00007efc9ef1ada9 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (visitor=0x7efc4f6af8b8, node=<optimized out>) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #26 QmlJS::AST::SourceElements::accept0(QmlJS::AST::Visitor*) (this=0x7efc4f5f3e60, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:772 #27 0x00007efc9ef18efd in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (this=0x7efc4f5f3e60, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #28 0x00007efc9ef1ad25 in QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (visitor=0x7efc4f6af8b8, node=<optimized out>) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #29 QmlJS::AST::Program::accept0(QmlJS::AST::Visitor*) (this=0x7efc4dfb5ce8, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:762 #30 0x00007efc9ef1b6a2 in QmlJS::AST::Node::accept(QmlJS::AST::Visitor*) (visitor=0x7efc4f6af8b8, this=0x7efc4dfb5ce8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:37 #31 QmlJS::AST::Node::accept(QmlJS::AST::Node*, QmlJS::AST::Visitor*) (node=0x7efc4dfb5ce8, visitor=0x7efc4f6af8b8) at /home/Fast_storage/kdevelop/plugins/qmljs/3rdparty/qtcreator-libs/qmljs/parser/qmljsast.cpp:45 #32 0x00007efc9eee6fa2 in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (context=0x7efc4f3f1720, node=0x7efc4dfb5ce8, this=0x7efc4f6af6d0) at /home/Fast_storage/kdevelop/kdevplatform/language/duchain/builders/abstractcontextbuilder.h:113 #33 KDevelop::AbstractTypeBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName, ContextBuilder>::supportBuild(QmlJS::AST::Node*, KDevelop::DUContext*) (this=0x7efc4f6af6d0, node=0x7efc4dfb5ce8, context=<optimized out>) at /home/Fast_storage/kdevelop/kdevplatform/language/duchain/builders/abstracttypebuilder.h:72 #34 0x00007efc9eee5eb1 in KDevelop::AbstractContextBuilder<QmlJS::AST::Node, QmlJS::AST::IdentifierPropertyName>::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=this@entry=0x7efc4f6af6d0, url=..., node=node@entry=0x7efc4dfb5ce8, updateContext=...) at /home/Fast_storage/kdevelop/kdevplatform/language/duchain/topducontext.h:62 #35 0x00007efc9eef9683 in DeclarationBuilder::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=this@entry=0x7efc4f6af6d0, url=..., node=node@entry=0x7efc4dfb5ce8, updateContext_=...) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/declarationbuilder.cpp:69 #36 0x00007efc9eef962a in DeclarationBuilder::build(KDevelop::IndexedString const&, QmlJS::AST::Node*, KDevelop::ReferencedTopDUContext const&) (this=this@entry=0x7efc75aee8a0, url=..., node=node@entry=0x7efc4dfb5ce8, updateContext_=...) at /home/Fast_storage/kdevelop/plugins/qmljs/duchain/declarationbuilder.cpp:56 #37 0x00007efc9eee27a1 in QmlJsParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0x5644475066f0, pointer=..., thread=<optimized out>) at /home/Fast_storage/kdevelop/plugins/qmljs/qmljsparsejob.cpp:140 #38 0x00007efcfb6f84dc in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #39 0x00007efcfb6f8ae9 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #40 0x00007efcfb6f7af2 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5 #41 0x00007efcfb6f7321 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #42 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #43 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #44 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 20 (Thread 0x7efc762f1640 (LWP 355382) "QQuickXmlQueryE"): #1 0x00007efcf66f48d5 in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf674867d in () at /usr/lib/libglib-2.0.so.0 #3 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #7 0x00007efc7c16183a in () at /usr/lib/qt/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so #8 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #9 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 19 (Thread 0x7efc752ef640 (LWP 355279) "kdevelop"): #1 0x00007efcee1d6524 in () at /usr/lib/libusbmuxd-2.0.so.6 #2 0x00007efcee1d78a9 in () at /usr/lib/libusbmuxd-2.0.so.6 #3 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 18 (Thread 0x7efc7cd5c640 (LWP 355276) "KDevelop::Compl"): #1 0x00007efcf8095985 in clock_gettime@GLIBC_2.2.5 () at /usr/lib/libc.so.6 #2 0x00007efcf882e3b6 in () at /usr/lib/libQt5Core.so.5 #3 0x00007efcf882cbfe in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5 #4 0x00007efcf882d1ca in QTimerInfoList::timerWait(timespec&) () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf882ef0f in () at /usr/lib/libQt5Core.so.5 #6 0x00007efcf66f4090 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #7 0x00007efcf67485f6 in () at /usr/lib/libglib-2.0.so.0 #8 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #9 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #10 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #11 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #12 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #13 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #14 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 17 (Thread 0x7efc7e0c5640 (LWP 355262) "OutputFilterThr"): #1 0x00007efcf66f1bb1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #3 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #6 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 16 (Thread 0x7efc7eb78640 (LWP 355260) "Qt bearer threa"): #1 0x00007efcf882e3b6 in () at /usr/lib/libQt5Core.so.5 #2 0x00007efcf882cbfe in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5 #3 0x00007efcf882f026 in () at /usr/lib/libQt5Core.so.5 #4 0x00007efcf66f47d9 in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #5 0x00007efcf674867d in () at /usr/lib/libglib-2.0.so.0 #6 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #7 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #8 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #9 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #10 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #11 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 15 (Thread 0x7efc9cdea640 (LWP 355258) "QQmlThread"): #1 0x00007efcf66f46fb in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf674867d in () at /usr/lib/libglib-2.0.so.0 #3 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #7 0x00007efcfa8f1509 in () at /usr/lib/libQt5Qml.so.5 #8 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #9 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 14 (Thread 0x7efc9d5eb640 (LWP 355256) "QThread"): #1 0x00007efcf67486d9 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007efcfb809ffc in KDevelop::DUChainPrivate::CleanupThread::run() (this=0x56443d5edd70) at /home/Fast_storage/kdevelop/kdevplatform/language/duchain/duchain.cpp:319 #7 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #8 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 13 (Thread 0x7efcadbab640 (LWP 355251) "gdbus"): #1 0x00007efcf67486d9 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf66f3a63 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #3 0x00007efcea29c268 in () at /usr/lib/libgio-2.0.so.0 #4 0x00007efcf6722d11 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 12 (Thread 0x7efcaf7fe640 (LWP 355250) "gmain"): #1 0x00007efcf67486d9 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007efcf66f1c12 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007efcf6722d11 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7efcaeffd640 (LWP 355249) "QDBusConnection"): #1 0x00007efcf674867d in () at /usr/lib/libglib-2.0.so.0 #2 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007efcf882eb97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf85e01b6 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007efcf946cb0c in () at /usr/lib/libQt5DBus.so.5 #7 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #8 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 10 (Thread 0x7efcaffff640 (LWP 355245) "kdevelop:gdrv0"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7efccd247640 (LWP 355244) "kdevelop:shlo1"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7efccda48640 (LWP 355243) "kdevelop:shlo0"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7efcce249640 (LWP 355242) "kdevelop:sh2"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7efccea4a640 (LWP 355241) "kdevelop:sh1"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7efccf24b640 (LWP 355240) "kdevelop:sh0"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7efccfa4c640 (LWP 355239) "kdevelo:disk$0"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7efcd024d640 (LWP 355238) "kdevelop:cs0"): #1 0x00007efcf7700270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #2 0x00007efcd66c197c in () at /usr/lib/dri/radeonsi_dri.so #3 0x00007efcd66bb058 in () at /usr/lib/dri/radeonsi_dri.so #4 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7efcdce61640 (LWP 355237) "QXcbEventQueue"): #1 0x00007efcf757263b in () at /usr/lib/libxcb.so.1 #2 0x00007efcf757437b in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007efcdcf5d768 in () at /usr/lib/libQt5XcbQpa.so.5 #4 0x00007efcf85e140b in () at /usr/lib/libQt5Core.so.5 #5 0x00007efcf76fa259 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007efcf80cd5e3 in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7efcdd3661c0 (LWP 355236) "kdevelop"): #1 0x00007efcf85e1766 in QBasicMutex::lockInternal() () at /usr/lib/libQt5Core.so.5 #2 0x00007efcf85e180e in QMutex::lock() () at /usr/lib/libQt5Core.so.5 #3 0x00007efcfb7dcd14 in KDevelop::BackgroundParserPrivate::parseDocumentsInternal() (this=this@entry=0x56443d1eb9d0) at /home/Fast_storage/kdevelop/kdevplatform/language/backgroundparser/backgroundparser.cpp:321 #4 0x00007efcfb7d888d in KDevelop::BackgroundParser::parseDocuments() (this=<optimized out>) at /home/Fast_storage/kdevelop/kdevplatform/language/backgroundparser/backgroundparser.cpp:705 #5 0x00007efcf8803097 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #6 0x00007efcf96d7ff6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #7 0x00007efcf87d51fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #8 0x00007efcf87d83a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5 #9 0x00007efcf882f508 in () at /usr/lib/libQt5Core.so.5 #10 0x00007efcf66f44dc in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #11 0x00007efcf6748749 in () at /usr/lib/libglib-2.0.so.0 #12 0x00007efcf66f1bc1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #13 0x00007efcf882eb1a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #14 0x00007efcf87d3aab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #15 0x00007efcf87dc298 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #16 0x000056443b9d5383 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/Fast_storage/kdevelop/app/main.cpp:846 [Inferior 1 (process 355236) detached] Possible duplicates by query: bug 443784, bug 440840, bug 435992, bug 434725, bug 434205. Reported using DrKonqi
A possibly relevant merge request was started @ https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/306
Git commit 3871312163689fd985832726eea7f0d86663d931 by Milian Wolff, on behalf of Igor Kushnir. Committed on 26/11/2021 at 08:11. Pushed by igorkushnir into branch 'master'. DocumentParsePlan: don't cache often-invalidated cend() The loop in DocumentParsePlan::removeTargetsForListener() caches m_targets.cend(), which can become invalidated when a target is erased inside this loop. Comparing to the invalidated end iterator leads to undefined behavior. This undefined behavior makes QmlJS's test_files crash every other time, both on my system and on the CI. The alternating crashes of this test can be seen by clicking Next Build repeatedly starting from the first build since the bug was introduced: https://build.kde.org/job/KDevelop/job/kdevelop/job/kf5-qt5%20SUSEQt5.15/165/testReport/junit/projectroot.plugins.qmljs/tests/test_files/ KDevelop often crashes because of this undefined behavior too (see the bug report referenced below). m_targets is a QSet, which is implemented in terms of QHash. QHash's end iterator `e` equals the d-pointer `d` via anonymous union. So the only way cend() can be invalidated is if QSet::erase() detaches. That's possible, because an entire DocumentParsePlan is copied in BackgroundParserPrivate::parseDocumentsInternal(): const DocumentParsePlan parsePlan = *parsePlanConstIt; The involvement of multithreading explains why test_files crashes every other time rather than each time. Examining call stacks of both test_files and kdevelop crashes confirms this hypothesis: a background thread crashes in DocumentParsePlan::removeTargetsForListener() while the main thread waits on the `m_mutex.lock()` line in parseDocumentsInternal(). This bug was introduced in 5ee9b9fe9740f2820f3ee1a575fcda2cbe142e4f. M +1 -1 kdevplatform/language/backgroundparser/backgroundparser.cpp https://invent.kde.org/kdevelop/kdevelop/commit/3871312163689fd985832726eea7f0d86663d931