ArcsinX wrote:

> I didn't update that patch. I observed a similar crash and I didn't meet it 
> after I use this patch. That crash starts with TUScheduler's UpdatePreamble 
> and then calls into ParsedAST::build.

For me the trace is the following and it looks like that this patch can't 
prevent this crash (but I applied this patch just to be sure and behavior is 
the same).
```
 #0 0x000055ef32d0d0e0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
(.../llvm-project/build_clang/bin/clangd+0x52a0e0)
 #1 0x000055ef32d09f6d SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007fee7d0fb520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x000055ef3552c821 
clang::ASTReader::FindExternalLexicalDecls(clang::DeclContext const*, 
llvm::function_ref<bool (clang::Decl::Kind)>, 
llvm::SmallVectorImpl<clang::Decl*>&) 
(.../llvm-project/build_clang/bin/clangd+0x2d49821)
 #4 0x000055ef32e69ac9 
clang::DeclContext::LoadLexicalDeclsFromExternalStorage() const 
(.../llvm-project/build_clang/bin/clangd+0x686ac9)
 #5 0x000055ef32e69c4d clang::DeclContext::decls_begin() const 
(.../llvm-project/build_clang/bin/clangd+0x686c4d)
 #6 0x000055ef345dcf49 clang::clangd::indexHeaderSymbols(llvm::StringRef, 
clang::ASTContext&, clang::Preprocessor&, 
clang::include_cleaner::PragmaIncludes const&, clang::clangd::SymbolOrigin) 
(.../llvm-project/build_clang/bin/clangd+0x1df9f49)
 #7 0x000055ef345dd2ad 
clang::clangd::FileIndex::updatePreamble(llvm::StringRef, llvm::StringRef, 
clang::ASTContext&, clang::Preprocessor&, 
clang::include_cleaner::PragmaIncludes const&) 
(.../llvm-project/build_clang/bin/clangd+0x1dfa2ad)
 #8 0x000055ef3426b18c void 
llvm::detail::UniqueFunctionBase<void>::CallImpl<clang::clangd::(anonymous 
namespace)::UpdateIndexCallbacks::onPreambleAST(llvm::StringRef, 
llvm::StringRef, clang::clangd::CapturedASTCtx, 
std::shared_ptr<clang::include_cleaner::PragmaIncludes 
const>)::'lambda'()>(void*) ClangdServer.cpp:0:0
 #9 0x000055ef34675a06 void* 
llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine
 const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*) Threading.cpp:0:0
#10 0x00007fee7d14dac3 start_thread ./nptl/pthread_create.c:442:8
#11 0x00007fee7d1df8d0 ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:83:0
```

> I think if you really want that, you can make a patch and let's review it.

I plan to check how difficult it will be to implement this at the end of this 
week if no one does this first

https://github.com/llvm/llvm-project/pull/187432
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to