Bug 480526 - KDevelop always crashes when loading session cache
Summary: KDevelop always crashes when loading session cache
Status: REPORTED
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (Clang-based) (show other bugs)
Version: git master
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-01-30 09:45 UTC by Eugene Shalygin
Modified: 2024-01-30 09:45 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Shalygin 2024-01-30 09:45:16 UTC
SUMMARY
KDevelop, built against LLVM 17.0.6, always crashes when loading existing session cache. 

STEPS TO REPRODUCE
1.  Load a project, wait for it to be parsed.
2. Close KDevelop.
3. Re-open KDevelop with this session, without clearing duchain cache or reparsing project on opening enabled.

OBSERVED RESULT
Thread 75 "Queue(0x555555d" received signal SIGSEGV, Segmentation fault.
#0  0x00007ffff5d986fa in ??? () at /usr/lib64/libc.so.6
#1  0x00007ffff41552b3 in KDevelop::ItemRepository<KDevelop::(anonymous namespace)::PersistentSymbolTableItem, KDevelop::(anonymous namespace)::PersistentSymbolTableRequestItem, true, QRecursiveMutex, 0u, 1048576u>::convertMonsterBucket(int, int) [clone .isra.0] () at /usr/lib64/libKDevPlatformLanguage.so.514
#2  0x00007ffff41560b0 in KDevelop::ItemRepository<KDevelop::(anonymous namespace)::PersistentSymbolTableItem, KDevelop::(anonymous namespace)::PersistentSymbolTableRequestItem, true, QRecursiveMutex, 0u, 1048576u>::index(KDevelop::(anonymous namespace)::PersistentSymbolTableRequestItem const&) [clone .isra.0] () at /usr/lib64/libKDevPlatformLanguage.so.514
#3  0x00007ffff415721a in KDevelop::PersistentSymbolTable::addDeclaration(KDevelop::IndexedQualifiedIdentifier const&, KDevelop::IndexedDeclaration const&) () at /usr/lib64/libKDevPlatformLanguage.so.514
#4  0x00007ffff40f53b8 in KDevelop::Declaration::setInSymbolTable(bool) () at /usr/lib64/libKDevPlatformLanguage.so.514
#5  0x00007fffae913059 in KDevelop::Declaration* (anonymous namespace)::Visitor::createDeclarationCommon<(CXCursorKind)201, KDevelop::Declaration>(CXCursor, KDevelop::Identifier const&) () at /usr/lib64/libKDevClangPrivate.so.514
#6  0x00007fffae918402 in (anonymous namespace)::visitCursor(CXCursor, CXCursor, void*) () at /usr/lib64/libKDevClangPrivate.so.514
#7  0x00007fff952de24c in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool) [clone .localalias] () at /usr/lib/llvm/17/lib64/libclang.so.17
#8  0x00007fff952deeee in clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*) [clone .localalias] () at /usr/lib/llvm/17/lib64/libclang.so.17
#9  0x00007fff952defb8 in clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*) [clone .localalias] () at /usr/lib/llvm/17/lib64/libclang.so.17
#10 0x00007fff952ddf2e in clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) [clone .localalias] () at /usr/lib/llvm/17/lib64/libclang.so.17
#11 0x00007fff952de10a in clang_visitChildren () at /usr/lib/llvm/17/lib64/libclang.so.17
#12 0x00007fffae9092a3 in Builder::visit(CXTranslationUnitImpl*, void*, QHash<void*, KDevelop::ReferencedTopDUContext> const&, bool) () at /usr/lib64/libKDevClangPrivate.so.514
#13 0x00007fffae923516 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>, QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString, KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&, ClangIndex*, std::function<bool ()> const&) () at /usr/lib64/libKDevClangPrivate.so.514
#14 0x00007fffae922d22 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>, QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString, KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&, ClangIndex*, std::function<bool ()> const&) () at /usr/lib64/libKDevClangPrivate.so.514
#15 0x00007fffae922d22 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>, QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString, KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&, ClangIndex*, std::function<bool ()> const&) () at /usr/lib64/libKDevClangPrivate.so.514
#16 0x00007fffae922d22 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>, QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString, KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&, ClangIndex*, std::function<bool ()> const&) () at /usr/lib64/libKDevClangPrivate.so.514
#17 0x00007fffae922d22 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>, QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString, KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&, ClangIndex*, std::function<bool ()> const&) () at /usr/lib64/libKDevClangPrivate.so.514
#18 0x00007fffae922d22 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>, QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString, KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&, ClangIndex*, std::function<bool ()> const&) () at /usr/lib64/libKDevClangPrivate.so.514
#19 0x00007fffafe1020d in ClangParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/qt5/plugins/kdevplatform/514/kdevclangsupport.so
#20 0x00007ffff283f027 in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#21 0x00007ffff283ec78 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#22 0x00007ffff283fb1f in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5
#23 0x00007ffff2844811 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5
#24 0x00007ffff62d9037 in QThreadPrivate::start(void*) () at /usr/lib64/libQt5Core.so.5
#25 0x00007ffff5cd645b in ??? () at /usr/lib64/libc.so.6
#26 0x00007ffff5d48018 in ??? () at /usr/lib64/libc.so.6

SOFTWARE/OS VERSIONS
Operating System: Gentoo Linux 2.14
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.114.0
Qt Version: 5.15.12
Kernel Version: 6.7.2-gentoo-r1 (64-bit)