https://bugs.kde.org/show_bug.cgi?id=488043

Igor Kushnir <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|REPORTED                    |CONFIRMED

--- Comment #7 from Igor Kushnir <[email protected]> ---
There are about 10 core dumps with `takeNextBucketHash()` in my crash
collection. But they all happen in the PersistentSymbolTable rather than in the
CodeModel item repository. Restarting KDevelop without clearing the cache
results in the same crash. Clearing the cache usually allows the parsing to
complete successfully. The most recent such crash occurred in April this year.
The reduced backtrace of this last crash of mine:
Thread 1 (Thread 0x7fc230a916c0 (LWP 64212)):
[KCrash Handler]
#4  0x00007fc2cdc0e9ef in std::__fill_a1<unsigned short*, int>
(__first=0x7fc25e0cd654, __last=0x7fc25e0cefee, __value=<optimized out>,
__first=<optimized out>, __last=<optimized out>, __value=<optimized out>) at
/usr/include/c++/14.2.1/bits/stl_algobase.h:952
#5  std::__fill_a<unsigned short*, int> (__first=0x7fc25e0cd654,
__last=0x7fc25e0cefee, __value=<optimized out>, __first=<optimized out>,
__last=<optimized out>, __value=<optimized out>) at
/usr/include/c++/14.2.1/bits/stl_algobase.h:998
#6  std::__fill_n_a<unsigned short*, int, int> (__first=0x7fc25e0cd654,
__n=3277, __value=<optimized out>, __first=<optimized out>, __n=<optimized
out>, __value=<optimized out>) at
/usr/include/c++/14.2.1/bits/stl_algobase.h:1154
#7  std::fill_n<short unsigned int*, KDevelop::Bucket<KDevelop::(anonymous
namespace)::PersistentSymbolTableItem, KDevelop::(anonymous
namespace)::PersistentSymbolTableRequestItem, true, 0>::<unnamed enum>, int>
(__first=0x7fc25e0cd654, __n=KDevelop::Bucket<KDevelop::(anonymous
namespace)::PersistentSymbolTableItem, KDevelop::(anonymous
namespace)::PersistentSymbolTableRequestItem, true, 0>::NextBucketHashSize,
__value=<optimized out>) at /usr/include/c++/14.2.1/bits/stl_algobase.h:1183
#8  KDevelop::Bucket<KDevelop::(anonymous
namespace)::PersistentSymbolTableItem, KDevelop::(anonymous
namespace)::PersistentSymbolTableRequestItem, true, 0>::takeNextBucketHash
(this=0x7fc219275b70) at
kdevelop/kdevplatform/serialization/itemrepository.h:734
#9  KDevelop::ItemRepository<KDevelop::(anonymous
namespace)::PersistentSymbolTableItem, KDevelop::(anonymous
namespace)::PersistentSymbolTableRequestItem, true, QRecursiveMutex, 0u,
1048576u>::convertMonsterBucket(int, int) [clone .isra.0] (this=0x7fc2cf06d140
<_ZZN8KDevelop17ItemRepositoryForINS_21PersistentSymbolTableEE4repoEvE4repo.lto_priv.0>,
bucketNumber=<optimized out>, extent=1) at
kdevelop/kdevplatform/serialization/itemrepository.h:2144
#10 0x00007fc2cdc0eff4 in KDevelop::ItemRepository<KDevelop::(anonymous
namespace)::PersistentSymbolTableItem, KDevelop::(anonymous
namespace)::PersistentSymbolTableRequestItem, true, QRecursiveMutex, 0u,
1048576u>::index(KDevelop::(anonymous
namespace)::PersistentSymbolTableRequestItem const&) [clone .isra.0]
(this=<optimized out>, request=...) at
kdevelop/kdevplatform/serialization/itemrepository.h:1396
#11 0x00007fc2cdb334be in operator() (__closure=<optimized out>, repo=...) at
kdevelop/kdevplatform/language/duchain/persistentsymboltable.cpp:325
#12 KDevelop::LockedItemRepository::write<KDevelop::PersistentSymbolTable,
KDevelop::PersistentSymbolTable::addDeclaration(const
KDevelop::IndexedQualifiedIdentifier&, const
KDevelop::IndexedDeclaration&)::<lambda(KDevelop::(anonymous
namespace)::PersistentSymbolTableRepo&)> > (op=<optimized out>) at
kdevelop/kdevplatform/serialization/itemrepository.h:2552
#13 KDevelop::PersistentSymbolTable::addDeclaration (this=<optimized out>,
id=<optimized out>, declaration=<optimized out>) at
kdevelop/kdevplatform/language/duchain/persistentsymboltable.cpp:285
#14 0x00007fc2cdaf2d4f in KDevelop::Declaration::setInSymbolTable
(this=0x7fc2192629e0, inSymbolTable=<optimized out>) at
kdevelop/kdevplatform/language/duchain/declaration.cpp:620
#15 0x00007fc25c2a5f6d in (anonymous
namespace)::Visitor::createDeclarationCommon<(CXCursorKind)1,
KDevelop::Declaration> (this=0x7fc230a8f660, cursor=..., id=...) at
kdevelop/plugins/clang/duchain/builder.cpp:448
#16 0x00007fc25c2a2fc3 in (anonymous
namespace)::Visitor::createDeclaration<(CXCursorKind)1, KDevelop::Declaration>
(context=0x0, this=0x7fc230a8f660, cursor=..., id=...) at
kdevelop/plugins/clang/duchain/builder.cpp:454
#17 (anonymous namespace)::Visitor::buildDeclaration<(CXCursorKind)1,
KDevelop::Declaration, false> (this=0x7fc230a8f660, cursor=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1296
#18 (anonymous namespace)::Visitor::dispatchCursor<(CXCursorKind)1,
(Decision)1, (Decision)1> (this=0x7fc230a8f660, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1007
#19 (anonymous namespace)::Visitor::dispatchCursor<(CXCursorKind)1>
(this=0x7fc230a8f660, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:971
#20 (anonymous namespace)::visitCursor (cursor=..., parent=...,
data=0x7fc230a8f660) at kdevelop/plugins/clang/duchain/builder.cpp:1675
#21 0x00007fc24c474b8c in ??? () at /usr/lib/libclang.so.19.1
#22 0x00007fc24c476a12 in ??? () at /usr/lib/libclang.so.19.1
#23 0x00007fc24c476d70 in ??? () at /usr/lib/libclang.so.19.1
#24 0x00007fc24c473cde in ??? () at /usr/lib/libclang.so.19.1
#25 0x00007fc24c4777ad in clang_visitChildren () at /usr/lib/libclang.so.19.1
#26 0x00007fc25c29e7c1 in (anonymous namespace)::Visitor::Visitor
(this=0x7fc230a8f660, tu=<optimized out>, file=<optimized out>,
includes=<optimized out>, update=<optimized out>) at
kdevelop/plugins/clang/duchain/builder.cpp:1595
#27 Builder::visit (tu=<optimized out>, file=<optimized out>,
includes=<optimized out>, update=<optimized out>) at
kdevelop/plugins/clang/duchain/builder.cpp:1744
#28 0x00007fc25c2b5799 in ClangHelpers::buildDUChain (file=<optimized out>,
imports=<optimized out>, session=..., features=..., includedFiles=...,
unsavedRevisions=..., parseDocument=..., index=0x55b4e1871cb0,
abortFunction=...) at kdevelop/plugins/clang/duchain/clanghelpers.cpp:209
#29 0x00007fc25c2b50eb in ClangHelpers::buildDUChain (file=<optimized out>,
imports=..., session=..., features=..., features@entry=..., includedFiles=...,
unsavedRevisions=..., parseDocument=..., index=0x55b4e1871cb0,
abortFunction=...) at kdevelop/plugins/clang/duchain/clanghelpers.cpp:121
#30 0x00007fc25c367fba in ClangParseJob::run (this=0x55b4ea25ba30) at
kdevelop/plugins/clang/clangparsejob.cpp:323

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to