rust-analyzer: Chalk panics on tonic
I am on the latest version, it seems related to my issue where the errors cache (likely because it doesn’t complete anyways). I was thinking it may have to do with tonic/prost, but honestly no idea, the code is minimal, 300 lines max across like 5/6 files…
Crates:
actix = "0.11.0-beta.1"
actix-rt = "=2.0.0-beta.2"
chrono = "0.4.19"
derive_more = "0.99.11"
dotenv = "0.15.0"
enumn = "0.1.3"
envy = "0.4.2"
fnv = "1.0.3"
futures = "0.3.12"
futures-util = "0.3.12"
jsonwebtoken = "7.2.0"
lazy_static = "1.4.0"
num_cpus = "1.13.0"
percent-encoding = "2.1.0"
prost = "0.7"
rand = "0.8.3"
rustls = "0.19.0"
serde = {version = "1.0.123", features = ["derive"]}
serde_json = "1.0.62"
slog = "2.7.0"
slog-async = "2.6.0"
slog-bunyan = "2.3.0"
slog-term = "2.6.0"
tonic = "0.4.0"
[build-dependencies]
tonic-build = {version = "0.4.0", features = ["prost"]}
thread '<unnamed>' panicked at 'overflow depth reached', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-recursive-0.58.0/src/stack.rs:51:13
stack backtrace:
0: std::panicking::begin_panic
1: chalk_recursive::stack::Stack::push
2: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
3: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
4: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
5: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
6: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
7: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
8: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
9: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
10: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
11: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
12: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
13: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
14: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
15: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
16: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
17: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
18: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
19: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
20: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
21: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
22: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
23: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
24: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
25: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
26: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
27: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
28: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
29: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
30: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
31: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
32: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
33: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
34: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
35: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
36: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
37: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
38: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
39: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
40: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
41: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
42: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
43: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
44: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
45: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
46: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
47: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
48: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
49: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
50: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
51: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
52: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
53: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
54: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
55: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
56: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
57: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
58: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
59: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
60: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
61: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
62: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
63: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
64: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
65: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
66: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
67: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
68: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
69: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
70: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
71: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
72: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
73: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
74: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
75: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
76: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
77: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
78: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
79: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
80: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
81: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
82: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
83: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
84: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
85: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
86: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
87: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
88: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
89: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
90: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at 'overflow depth reached', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/chalk-recursive-0.58.0/src/stack.rs:51:13
stack backtrace:
0: std::panicking::begin_panic
1: chalk_recursive::stack::Stack::push
2: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
3: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
4: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
5: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
6: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
7: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
8: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
9: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
10: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
11: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
12: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
13: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
14: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
15: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
16: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
17: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
18: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
19: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
20: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
21: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
22: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
23: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
24: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
25: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
26: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
27: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
28: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
29: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
30: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
31: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
32: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
33: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
34: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
35: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
36: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
37: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
38: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
39: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
40: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
41: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
42: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
43: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
44: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
45: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
46: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
47: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
48: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
49: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
50: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
51: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
52: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
53: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
54: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
55: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
56: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
57: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
58: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
59: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
60: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
61: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
62: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
63: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
64: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
65: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
66: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
67: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
68: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
69: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
70: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
71: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
72: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
73: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
74: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
75: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
76: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
77: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
78: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
79: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
80: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
81: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
82: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
83: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
84: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
85: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
86: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
87: chalk_recursive::fulfill::Fulfill<I,Solver>::prove
88: chalk_recursive::fulfill::Fulfill<I,Solver>::solve
89: chalk_recursive::recursive::Solver<I>::solve_new_subgoal
90: <chalk_recursive::recursive::Solver<I> as chalk_recursive::solve::SolveDatabase<I>>::solve_goal
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 1
- Comments: 15 (8 by maintainers)
I can’t reproduce the crash with the commit @lnicola referenced, though we’re still very slow in analyzing it.
@dljsjr see https://github.com/rust-analyzer/rust-analyzer/issues/11668
I can reproduce it in
tonicat61555ff2b5b76e4e3172717354aed1e6f31d6611withrust-analyzer analysis-stats . -o client::grpc::ready.Min project that literally just has tonic/prost as deps: https://github.com/dtzxporter/crash-rls-chalk
rust-analyzer analysis-stats --with-depswill cause the crash.Same spot, client::grpc::ready is within tonic’s main repository