tupos wrote:

Hello,

I think there might be some problem with this PR. I updated to 19.1.0 today and 
started to see crashes with this callstack on random files. So far I was not 
able to create a minimal working repro to let it reproducibly crashing.

Strangely enought it does not always crash on the file, from which I obtained 
the crash. However, maybe you could have an idea what might be wrong.

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and 
include the crash backtrace.
 #0 0x00000000005bde8b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
/cpp/llvm-19.1.0/llvm/lib/Support/Unix/Signals.inc:727:3
 #1 0x00000000005bbb94 llvm::sys::RunSignalHandlers() 
/cpp/llvm-19.1.0/llvm/lib/Support/Signals.cpp:105:20
 #2 0x00000000005bbf4e SignalHandler(int) 
/cpp/llvm-19.1.0/llvm/lib/Support/Unix/Signals.inc:413:1
 #3 0x00007f9844ae2910 __restore_rt (/lib64/libpthread.so.0+0x16910)
 #4 0x0000000000586ee6 llvm::StringMapImpl::LookupBucketFor(llvm::StringRef, 
unsigned int) /cpp/llvm-19.1.0/llvm/lib/Support/StringMap.cpp:102:25
 #5 0x000000000264755f 
std::pair<llvm::StringMapIterator<llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>>,
 bool> 
llvm::StringMap<llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>,
 
llvm::MallocAllocator>::try_emplace_with_hash<llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>&>(llvm::StringRef,
 unsigned int, 
llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>&) 
/cpp/llvm-19.1.0/llvm/include/llvm/ADT/StringMap.h:376:40
 #6 0x000000000264755f 
std::pair<llvm::StringMapIterator<llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>>,
 bool> 
llvm::StringMap<llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>,
 
llvm::MallocAllocator>::try_emplace<llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>&>(llvm::StringRef,
 llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>&) 
/cpp/llvm-19.1.0/llvm/include/llvm/ADT/StringMap.h:369:33
 #7 0x000000000264755f clang::tidy::boost::UseRangesCheck::getReplacerMap() 
const::'lambda'(llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>,
 std::initializer_list<llvm::StringRef>, 
llvm::StringRef)::operator()(llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>,
 std::initializer_list<llvm::StringRef>, llvm::StringRef) const (.constprop.0) 
/cpp/llvm-19.1.0/clang-tools-extra/clang-tidy/boost/UseRangesCheck.cpp:213:30
 #8 0x0000000002647b1d 
llvm::RefCountedBase<clang::tidy::utils::UseRangesCheck::Replacer>::Release() 
const /cpp/llvm-19.1.0/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:102:20
 #9 0x0000000002647b1d 
llvm::IntrusiveRefCntPtrInfo<clang::tidy::utils::UseRangesCheck::Replacer>::release(clang::tidy::utils::UseRangesCheck::Replacer*)
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:164:45
#10 0x0000000002647b1d 
llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>::release()
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:233:41
#11 0x0000000002647b1d 
llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>::~IntrusiveRefCntPtr()
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:196:34
#12 0x0000000002647b1d clang::tidy::boost::UseRangesCheck::getReplacerMap() 
const::'lambda'(llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>,
 
std::initializer_list<llvm::StringRef>)::operator()(llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>,
 std::initializer_list<llvm::StringRef>) const (.constprop.0.isra.0) 
/cpp/llvm-19.1.0/clang-tools-extra/clang-tidy/boost/UseRangesCheck.cpp:220:16
#13 0x0000000002649032 
llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>::release()
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:232:5
#14 0x0000000002649032 
llvm::IntrusiveRefCntPtr<clang::tidy::utils::UseRangesCheck::Replacer>::~IntrusiveRefCntPtr()
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:196:34
#15 0x0000000002649032 clang::tidy::boost::UseRangesCheck::getReplacerMap() 
const 
/cpp/llvm-19.1.0/clang-tools-extra/clang-tidy/boost/UseRangesCheck.cpp:234:13
#16 0x0000000002c75a6c 
clang::tidy::utils::UseRangesCheck::registerMatchers(clang::ast_matchers::MatchFinder*)
 /cpp/llvm-19.1.0/clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp:112:43
#17 0x00000000017a86c8 clang::clangd::ParsedAST::build(llvm::StringRef, 
clang::clangd::ParseInputs const&, std::unique_ptr<clang::CompilerInvocation, 
std::default_delete<clang::CompilerInvocation>>, 
llvm::ArrayRef<clang::clangd::Diag>, 
std::shared_ptr<clang::clangd::PreambleData const>) 
/cpp/llvm-19.1.0/clang-tools-extra/clangd/ParsedAST.cpp:565:30
#18 0x0000000001823c30 std::unique_ptr<clang::CompilerInvocation, 
std::default_delete<clang::CompilerInvocation>>::~unique_ptr() 
/usr/include/c++/13/bits/unique_ptr.h:403:12
#19 0x0000000001823c30 clang::clangd::(anonymous 
namespace)::ASTWorker::generateDiagnostics(std::unique_ptr<clang::CompilerInvocation,
 std::default_delete<clang::CompilerInvocation>>, clang::clangd::ParseInputs, 
std::vector<clang::clangd::Diag, std::allocator<clang::clangd::Diag>>) 
/cpp/llvm-19.1.0/clang-tools-extra/clangd/TUScheduler.cpp:1211:74
#20 0x000000000182465e std::unique_ptr<clang::CompilerInvocation, 
std::default_delete<clang::CompilerInvocation>>::~unique_ptr() 
/usr/include/c++/13/bits/unique_ptr.h:403:12
#21 0x000000000182465e clang::clangd::(anonymous 
namespace)::ASTWorker::updatePreamble(std::unique_ptr<clang::CompilerInvocation,
 std::default_delete<clang::CompilerInvocation>>, clang::clangd::ParseInputs, 
std::shared_ptr<clang::clangd::PreambleData const>, 
std::vector<clang::clangd::Diag, std::allocator<clang::clangd::Diag>>, 
clang::clangd::WantDiagnostics)::'lambda'()::operator()() (.part.0) 
/cpp/llvm-19.1.0/clang-tools-extra/clangd/TUScheduler.cpp:1144:24
#22 0x000000000181a273 clang::clangd::(anonymous 
namespace)::ASTWorker::runTask(llvm::StringRef, llvm::function_ref<void ()>) 
/cpp/llvm-19.1.0/clang-tools-extra/clangd/TUScheduler.cpp:1325:1
#23 0x000000000181ca16 clang::clangd::(anonymous namespace)::ASTWorker::run() 
/cpp/llvm-19.1.0/clang-tools-extra/clangd/TUScheduler.cpp:1459:5
#24 0x00000000019c5fc0 
llvm::detail::PunnedPointer<llvm::PointerUnion<llvm::detail::UniqueFunctionBase<void>::TrivialCallback*,
 llvm::detail::UniqueFunctionBase<void>::NonTrivialCallbacks*>>::asInt() const 
/cpp/llvm-19.1.0/llvm/include/llvm/ADT/PointerIntPair.h:41:16
#25 0x00000000019c5fc0 
llvm::detail::PunnedPointer<llvm::PointerUnion<llvm::detail::UniqueFunctionBase<void>::TrivialCallback*,
 llvm::detail::UniqueFunctionBase<void>::NonTrivialCallbacks*>>::operator 
long() const /cpp/llvm-19.1.0/llvm/include/llvm/ADT/PointerIntPair.h:45:53
#26 0x00000000019c5fc0 
llvm::PointerIntPair<llvm::PointerUnion<llvm::detail::UniqueFunctionBase<void>::TrivialCallback*,
 llvm::detail::UniqueFunctionBase<void>::NonTrivialCallbacks*>, 1u, bool, 
llvm::PointerLikeTypeTraits<llvm::PointerUnion<llvm::detail::UniqueFunctionBase<void>::TrivialCallback*,
 llvm::detail::UniqueFunctionBase<void>::NonTrivialCallbacks*>>, 
llvm::PointerIntPairInfo<llvm::PointerUnion<llvm::detail::UniqueFunctionBase<void>::TrivialCallback*,
 llvm::detail::UniqueFunctionBase<void>::NonTrivialCallbacks*>, 1u, 
llvm::PointerLikeTypeTraits<llvm::PointerUnion<llvm::detail::UniqueFunctionBase<void>::TrivialCallback*,
 llvm::detail::UniqueFunctionBase<void>::NonTrivialCallbacks*>>>>::getPointer() 
const /cpp/llvm-19.1.0/llvm/include/llvm/ADT/PointerIntPair.h:94:57
#27 0x00000000019c5fc0 
llvm::detail::UniqueFunctionBase<void>::~UniqueFunctionBase() 
/cpp/llvm-19.1.0/llvm/include/llvm/ADT/FunctionExtras.h:282:42
#28 0x00000000019c5fc0 
llvm::detail::UniqueFunctionBase<void>::operator=(llvm::detail::UniqueFunctionBase<void>&&)
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/FunctionExtras.h:335:30
#29 0x00000000019c5fc0 
llvm::detail::UniqueFunctionBase<void>::operator=(llvm::detail::UniqueFunctionBase<void>&&)
 /cpp/llvm-19.1.0/llvm/include/llvm/ADT/FunctionExtras.h:328:23
#30 0x00000000019c5fc0 llvm::unique_function<void 
()>::operator=(llvm::unique_function<void ()>&&) 
/cpp/llvm-19.1.0/llvm/include/llvm/ADT/FunctionExtras.h:372:20
#31 0x00000000019c5fc0 operator() 
/cpp/llvm-19.1.0/clang-tools-extra/clangd/support/Threading.cpp:103:14
#32 0x00000000019c5fc0 
operator()<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, 
llvm::unique_function<void()>)::<lambda()>&> 
/cpp/llvm-19.1.0/llvm/include/llvm/Support/thread.h:43:16
#33 0x00000000019c5fc0 __invoke_impl<void, 
llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const
 llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > 
>(void*)::<lambda(auto:4&&, auto:5&& ...)>, 
clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, 
llvm::unique_function<void()>)::<lambda()>&> 
/usr/include/c++/13/bits/invoke.h:61:36
#34 0x00000000019c5fc0 
__invoke<llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const
 llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > 
>(void*)::<lambda(auto:4&&, auto:5&& ...)>, 
clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, 
llvm::unique_function<void()>)::<lambda()>&> 
/usr/include/c++/13/bits/invoke.h:96:40
#35 0x00000000019c5fc0 
__apply_impl<llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const
 llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > 
>(void*)::<lambda(auto:4&&, auto:5&& ...)>, 
std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, 
llvm::unique_function<void()>)::<lambda()> >&, 0> 
/usr/include/c++/13/tuple:2288:27
#36 0x00000000019c5fc0 
apply<llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const
 llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > 
>(void*)::<lambda(auto:4&&, auto:5&& ...)>, 
std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, 
llvm::unique_function<void()>)::<lambda()> >&> /usr/include/c++/13/tuple:2299:31
#37 0x00000000019c5fc0 
GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const 
llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > > 
/cpp/llvm-19.1.0/llvm/include/llvm/Support/thread.h:41:15
#38 0x00000000019c5fc0 void* 
llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine
 const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*) 
/cpp/llvm-19.1.0/llvm/include/llvm/Support/thread.h:55:36
#39 0x00007f9844ad66ea start_thread (/lib64/libpthread.so.0+0xa6ea)
#40 0x00007f984460f58f clone (/lib64/libc.so.6+0x11858f)
```

https://github.com/llvm/llvm-project/pull/101482
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to