Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clangd 13 crash when background indexing source code in xgboost project #53096

Open
zhwufd opened this issue Jan 9, 2022 · 1 comment
Open
Labels
clangd crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@zhwufd
Copy link

zhwufd commented Jan 9, 2022

coredump stacktrace:

#0 0x00000000006834c0 in clang::Expr::getType (this=0x0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/include/clang/AST/Expr.h:141
#1 0x0000000003df9ec9 in checkOpenMPLoop (DKind=llvm::omp::Directive::OMPD_parallel_for, CollapseLoopCountExpr=0x0, OrderedLoopCountExpr=0x0, AStmt=0x7febd65c3a58, SemaRef=..., DSA=..., VarsWithImplicitDSA=..., Built=...)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Sema/SemaOpenMP.cpp:9037
#2 0x0000000003dff0a8 in clang::Sema::ActOnOpenMPParallelForDirective (this=0x7febd45f09f0, Clauses=..., AStmt=0x7febd65c3a58, StartLoc=..., EndLoc=..., VarsWithImplicitDSA=...)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Sema/SemaOpenMP.cpp:10014
#3 0x0000000003dea1ed in clang::Sema::ActOnOpenMPExecutableDirective (this=0x7febd45f09f0, Kind=llvm::omp::Directive::OMPD_parallel_for, DirName=..., CancelRegion=llvm::omp::Directive::OMPD_unknown, Clauses=..., AStmt=0x7febd65c3a58, StartLoc=..., EndLoc=...)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Sema/SemaOpenMP.cpp:5903
#4 0x0000000003351a9a in clang::Parser::ParseOpenMPDeclarativeOrExecutableDirective (this=0x7febd45fb1d0, StmtCtx=clang::Parser::ParsedStmtContext::Compound) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseOpenMP.cpp:2579
#5 0x0000000003380129 in clang::Parser::ParseStatementOrDeclarationAfterAttributes (this=0x7febd45fb1d0, Stmts=..., StmtCtx=clang::Parser::ParsedStmtContext::Compound, TrailingElseLoc=0x0, Attrs=...)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:410
#6 0x000000000337eef9 in clang::Parser::ParseStatementOrDeclaration (this=0x7febd45fb1d0, Stmts=..., StmtCtx=clang::Parser::ParsedStmtContext::Compound, TrailingElseLoc=0x0)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:114
#7 0x00000000033829a5 in clang::Parser::ParseCompoundStatementBody (this=0x7febd45fb1d0, isStmtExpr=false) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:1107
#8 0x000000000338204a in clang::Parser::ParseCompoundStatement (this=0x7febd45fb1d0, isStmtExpr=false, ScopeFlags=4194312) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:917
#9 0x0000000003381fca in clang::Parser::ParseCompoundStatement (this=0x7febd45fb1d0, isStmtExpr=false) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:883
#10 0x000000000337f7bd in clang::Parser::ParseStatementOrDeclarationAfterAttributes (this=0x7febd45fb1d0, Stmts=..., StmtCtx=clang::Parser::ParsedStmtContext::SubStmt, TrailingElseLoc=0x0, Attrs=...)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:258
#11 0x000000000337eef9 in clang::Parser::ParseStatementOrDeclaration (this=0x7febd45fb1d0, Stmts=..., StmtCtx=clang::Parser::ParsedStmtContext::SubStmt, TrailingElseLoc=0x0)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:114
#12 0x000000000337edf6 in clang::Parser::ParseStatement (this=0x7febd45fb1d0, TrailingElseLoc=0x0, StmtCtx=clang::Parser::ParsedStmtContext::SubStmt) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:41
#13 0x00000000033845d0 in clang::Parser::ParseWhileStatement (this=0x7febd45fb1d0, TrailingElseLoc=0x0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:1649
#14 0x000000000337f86a in clang::Parser::ParseStatementOrDeclarationAfterAttributes (this=0x7febd45fb1d0, Stmts=..., StmtCtx=clang::Parser::ParsedStmtContext::Compound, TrailingElseLoc=0x0, Attrs=...)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:270
#15 0x000000000337eef9 in clang::Parser::ParseStatementOrDeclaration (this=0x7febd45fb1d0, Stmts=..., StmtCtx=clang::Parser::ParsedStmtContext::Compound, TrailingElseLoc=0x0)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:114
#16 0x00000000033829a5 in clang::Parser::ParseCompoundStatementBody (this=0x7febd45fb1d0, isStmtExpr=false) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:1107
#17 0x0000000003386fd7 in clang::Parser::ParseFunctionStatementBody (this=0x7febd45fb1d0, Decl=0x7febd65bd2d8, BodyScope=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseStmt.cpp:2276
#18 0x00000000032b0840 in clang::Parser::ParseFunctionDefinition (this=0x7febd45fb1d0, D=..., TemplateInfo=..., LateParsedAttrs=0x7febe67f85c0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:1377
#19 0x00000000032cce74 in clang::Parser::ParseDeclGroup (this=0x7febd45fb1d0, DS=..., Context=clang::DeclaratorContext::File, DeclEnd=0x0, FRI=0x0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDecl.cpp:2030
#20 0x00000000032af83d in clang::Parser::ParseDeclOrFunctionDefInternal (this=0x7febd45fb1d0, attrs=..., DS=..., AS=clang::AS_none) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:1137
#21 0x00000000032af8f8 in clang::Parser::ParseDeclarationOrFunctionDefinition (this=0x7febd45fb1d0, attrs=..., DS=0x0, AS=clang::AS_none) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:1153
#22 0x00000000032aee06 in clang::Parser::ParseExternalDeclaration (this=0x7febd45fb1d0, attrs=..., DS=0x0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:975
#23 0x00000000032ebffa in clang::Parser::ParseInnerNamespace (this=0x7febd45fb1d0, InnerNSs=..., index=0, InlineLoc=..., attrs=..., Tracker=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDeclCXX.cpp:246
#24 0x00000000032ebe2c in clang::Parser::ParseNamespace (this=0x7febd45fb1d0, Context=clang::DeclaratorContext::File, DeclEnd=..., InlineLoc=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDeclCXX.cpp:224
#25 0x00000000032cbfd2 in clang::Parser::ParseDeclaration (this=0x7febd45fb1d0, Context=clang::DeclaratorContext::File, DeclEnd=..., attrs=..., DeclSpecStart=0x0)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDecl.cpp:1731
#26 0x00000000032ae999 in clang::Parser::ParseExternalDeclaration (this=0x7febd45fb1d0, attrs=..., DS=0x0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:909
#27 0x00000000032ebffa in clang::Parser::ParseInnerNamespace (this=0x7febd45fb1d0, InnerNSs=..., index=0, InlineLoc=..., attrs=..., Tracker=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDeclCXX.cpp:246
#28 0x00000000032ebe2c in clang::Parser::ParseNamespace (this=0x7febd45fb1d0, Context=clang::DeclaratorContext::File, DeclEnd=..., InlineLoc=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDeclCXX.cpp:224
#29 0x00000000032cbfd2 in clang::Parser::ParseDeclaration (this=0x7febd45fb1d0, Context=clang::DeclaratorContext::File, DeclEnd=..., attrs=..., DeclSpecStart=0x0)
at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseDecl.cpp:1731
#30 0x00000000032ae999 in clang::Parser::ParseExternalDeclaration (this=0x7febd45fb1d0, attrs=..., DS=0x0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:909
#31 0x00000000032aded9 in clang::Parser::ParseTopLevelDecl (this=0x7febd45fb1d0, Result=..., IsFirstDecl=false) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/Parser.cpp:720
#32 0x00000000032a959f in clang::ParseAST (S=..., PrintStats=false, SkipFunctionBodies=true) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Parse/ParseAST.cpp:158
#33 0x000000000301dd6f in clang::ASTFrontendAction::ExecuteAction (this=0x7febd456dbb0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Frontend/FrontendAction.cpp:1058
#34 0x000000000301d69b in clang::FrontendAction::Execute (this=0x7febd456dbb0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang/lib/Frontend/FrontendAction.cpp:951
--Type for more, q to quit, c to continue without paging--
#35 0x0000000001889c10 in clang::clangd::BackgroundIndex::index (this=0xabd2df0, Cmd=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang-tools-extra/clangd/index/Background.cpp:324
#36 0x0000000001888760 in clang::clangd::BackgroundIndex::<lambda()>::operator()(void) const (__closure=0x7fea50e5ea90) at /data/llvm/llvm-project-llvmorg-13.0.0/clang-tools-extra/clangd/index/Background.cpp:168
#37 0x000000000188b33d in std::_Function_handler<void(), clang::clangd::BackgroundIndex::indexFileTask(std::__cxx11::string)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/8.3.0/bits/std_function.h:297
#38 0x00000000010484c2 in std::function<void ()>::operator()() const (this=0x7febe67fbc90) at /usr/include/c++/8.3.0/bits/std_function.h:687
#39 0x000000000189d76f in clang::clangd::BackgroundQueue::work(std::function<void ()>) (this=0xabd2fc0, OnIdle=...) at /data/llvm/llvm-project-llvmorg-13.0.0/clang-tools-extra/clangd/index/BackgroundQueue.cpp:42
#40 0x0000000001887a9a in clang::clangd::BackgroundIndex::<lambda()>::operator()(void) (__closure=0xabdf600) at /data/llvm/llvm-project-llvmorg-13.0.0/clang-tools-extra/clangd/index/Background.cpp:114
#41 0x000000000188baf7 in llvm::detail::UniqueFunctionBase::CallImpl<clang::clangd::BackgroundIndex::BackgroundIndex(const clang::clangd::ThreadsafeFS&, const clang::clangd::GlobalCompilationDatabase&, clang::clangd::BackgroundIndexStorage::Factory, clang::clangd::BackgroundIndex::Options)::<lambda()> >(void *) (CallableAddr=0xabdf600) at /data/llvm/llvm-project-llvmorg-13.0.0/llvm/include/llvm/ADT/FunctionExtras.h:216
#42 0x0000000001280cc7 in llvm::unique_function<void ()>::operator()() (this=0xabdf600) at /data/llvm/llvm-project-llvmorg-13.0.0/llvm/include/llvm/ADT/FunctionExtras.h:378
#43 0x00000000019581e3 in clang::clangd::AsyncTaskRunner::<lambda()>::operator()(void) (__closure=0xabdf5e0) at /data/llvm/llvm-project-llvmorg-13.0.0/clang-tools-extra/clangd/support/Threading.cpp:93
#44 0x0000000001958d42 in llvm::thread::Apply<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, llvm::unique_function<void()>)::<lambda()> >(std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > &, std::index_sequence) (Callee=...) at /data/llvm/llvm-project-llvmorg-13.0.0/llvm/include/llvm/Support/thread.h:42
#45 0x0000000001958c10 in llvm::thread::GenericThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > >(void *) (Ptr=0xabdf5e0)
at /data/llvm/llvm-project-llvmorg-13.0.0/llvm/include/llvm/Support/thread.h:50
#46 0x0000000001958a90 in llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(const llvm::Twine&, llvm::unique_function<void()>)::<lambda()> > >(void *) (Ptr=0xabdf5e0)
at /data/llvm/llvm-project-llvmorg-13.0.0/llvm/include/llvm/Support/thread.h:60
#47 0x00007fed0e609ea5 in start_thread () from /lib64/libpthread.so.0
#48 0x00007fed0d2489fd in clone () from /lib64/libc.so.6

source file:
https://github.com/dmlc/xgboost/blob/71eaa26c7bb564d0291a34bbcdcb606b6c299937/src/common/hist_util.cc

N0->IgnoreImpCasts(), N0->getType(),

since N0 in above code is a nullptr, clangd crashed.

@HighCommander4
Copy link
Collaborator

Please see clangd/clangd#1731 (comment) for a workaround

@Endilll Endilll added the crash Prefer [crash-on-valid] or [crash-on-invalid] label Aug 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clangd crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

4 participants