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

100% cpu usage in chalk_recursive #13655

Closed
yshui opened this issue Nov 20, 2022 · 1 comment
Closed

100% cpu usage in chalk_recursive #13655

yshui opened this issue Nov 20, 2022 · 1 comment

Comments

@yshui
Copy link

yshui commented Nov 20, 2022

rust-analyzer version: rust-analyzer 0.0.0 (0dd0dfb 2022-11-15)

rustc version: rustc 1.67.0-nightly (c5d82ed7a 2022-11-19)

I noticed RA sometimes stops responding and uses 100% CPU (of one core). Attaching gdb to it, I find one of the thread seems to be stuck in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal.

Full stack trace:

#0  0x00005599d86b511a in chalk_recursive::fulfill::Fulfill<I,Solver>::prove ()
#1  0x00005599d86b5a89 in chalk_recursive::fulfill::Fulfill<I,Solver>::solve ()
#2  0x00005599d86da61e in chalk_recursive::solve::SolveIteration::solve_iteration ()
#3  0x00005599d86d61d6 in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal ()
#4  0x00005599d86b511a in chalk_recursive::fulfill::Fulfill<I,Solver>::prove ()
#5  0x00005599d86b5a89 in chalk_recursive::fulfill::Fulfill<I,Solver>::solve ()
#6  0x00005599d86da61e in chalk_recursive::solve::SolveIteration::solve_iteration ()
#7  0x00005599d86d61d6 in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal ()
#8  0x00005599d86b511a in chalk_recursive::fulfill::Fulfill<I,Solver>::prove ()
#9  0x00005599d86b5a89 in chalk_recursive::fulfill::Fulfill<I,Solver>::solve ()
#10 0x00005599d86da61e in chalk_recursive::solve::SolveIteration::solve_iteration ()
#11 0x00005599d86d61d6 in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal ()
#12 0x00005599d86b511a in chalk_recursive::fulfill::Fulfill<I,Solver>::prove ()
#13 0x00005599d86b5a89 in chalk_recursive::fulfill::Fulfill<I,Solver>::solve ()
#14 0x00005599d86da61e in chalk_recursive::solve::SolveIteration::solve_iteration ()
#15 0x00005599d86d61d6 in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal ()
#16 0x00005599d86b511a in chalk_recursive::fulfill::Fulfill<I,Solver>::prove ()
#17 0x00005599d86b5a89 in chalk_recursive::fulfill::Fulfill<I,Solver>::solve ()
#18 0x00005599d86da61e in chalk_recursive::solve::SolveIteration::solve_iteration ()
#19 0x00005599d86d61d6 in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_goal ()
#20 0x00005599d86d70e5 in chalk_recursive::fixed_point::RecursiveContext<K,V>::solve_root_goal ()
#21 0x00005599d8540281 in hir_ty::traits::trait_solve_query ()
#22 0x00005599d86df0b5 in salsa::runtime::Runtime::execute_query_implementation ()
#23 0x00005599d86680dd in salsa::derived::slot::Slot<Q,MP>::read_upgrade ()
#24 0x00005599d86a0555 in salsa::derived::slot::Slot<Q,MP>::read ()
#25 0x00005599d863b7d2 in <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch ()
#26 0x00005599d86cb510 in salsa::QueryTable<Q>::get ()
#27 0x00005599d862ac06 in <DB as hir_ty::db::HirDatabase>::trait_solve_query::__shim ()
#28 0x00005599d8137b5c in <DB as hir_ty::db::HirDatabase>::trait_solve_query ()
#29 0x00005599d86285cc in hir_ty::db::trait_solve_wait ()
#30 0x00005599d81379dc in <DB as hir_ty::db::HirDatabase>::trait_solve ()
#31 0x00005599d85382a7 in hir_ty::infer::unify::InferenceTable::register_obligation_in_env ()
#32 0x00005599d8538884 in hir_ty::infer::unify::InferenceTable::resolve_obligations_as_possible ()
#33 0x00005599d8770f8a in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::check_call_arguments ()
#34 0x00005599d876a558 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#35 0x00005599d8767dec in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#36 0x00005599d8766568 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr ()
#37 0x00005599d8768001 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#38 0x00005599d87666a8 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
    ()
#39 0x00005599d87703c4 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block ()
#40 0x00005599d8769693 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#41 0x00005599d876724b in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#42 0x00005599d87666a8 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
    ()
#43 0x00005599d87703c4 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block ()
#44 0x00005599d8769693 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#45 0x00005599d876a926 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_ex--Type <RET> for more, q to quit, c to continue without paging--
pr_inner::h73d8e1012c91740b ()
#46 0x00005599d87666a8 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
    ()
#47 0x00005599d87703c4 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block ()
#48 0x00005599d8769693 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#49 0x00005599d87666a8 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
    ()
#50 0x00005599d85a774c in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::with_breakable_ctx
    ()
#51 0x00005599d8767bf6 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#52 0x00005599d87666a8 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
    ()
#53 0x00005599d87703c4 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_block ()
#54 0x00005599d8769693 in hir_ty::infer::expr::_$LT$impl$u20$hir_ty..infer..InferenceContext$GT$::infer_expr_inner::h73d8e1012c91740b ()
#55 0x00005599d87666a8 in hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_coerce
    ()
#56 0x00005599d87760b9 in hir_ty::infer::infer_query ()
#57 0x00005599d86e0e0a in salsa::runtime::Runtime::execute_query_implementation ()
#58 0x00005599d8671f25 in salsa::derived::slot::Slot<Q,MP>::read_upgrade ()
#59 0x00005599d869af4b in salsa::derived::slot::Slot<Q,MP>::read ()
#60 0x00005599d863fb91 in <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch ()
#61 0x00005599d86286b0 in <DB as hir_ty::db::HirDatabase>::infer_query::__shim ()
#62 0x00005599d8137985 in <DB as hir_ty::db::HirDatabase>::infer_query ()
#63 0x00005599d86284aa in hir_ty::db::infer_wait ()
#64 0x00005599d8137eb5 in <DB as hir_ty::db::HirDatabase>::infer ()
#65 0x00005599d84e4d4f in hir::DefWithBody::diagnostics ()
#66 0x00005599d84df9ac in hir::Module::diagnostics ()
#67 0x00005599d81058d8 in ide_diagnostics::diagnostics ()
#68 0x00005599d8084273 in std::panicking::try ()
#69 0x00005599d809c6fe in ide::Analysis::diagnostics ()
#70 0x00005599d7da6b6c in rust_analyzer::handlers::publish_diagnostics ()
#71 0x00005599d7cf6163 in alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter ()
#72 0x00005599d7e207fb in <F as threadpool::FnBox>::call_box ()
#73 0x00005599d7ec41a6 in std::sys_common::backtrace::__rust_begin_short_backtrace::h567ecb1958c73c33 ()
#74 0x00005599d7ec7055 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
#75 0x00005599d8b12283 in std::sys::unix::thread::Thread::new::thread_start ()
#76 0x00007f5e315ecaf3 in ?? () from /usr/lib64/libc.so.6
#77 0x00007f5e3166ebac in ?? () from /usr/lib64/libc.so.6
@yshui
Copy link
Author

yshui commented Nov 20, 2022

I think it's a dup of #12897

@yshui yshui closed this as completed Nov 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant