Improved handling for cycles within the query system itself#154387
Improved handling for cycles within the query system itself#154387jyn514 wants to merge 7 commits intorust-lang:mainfrom
Conversation
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
WIP: desc
```
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_attr_map"
rustc_query_impl::execution::try_execute_query query="associated_item"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_query_impl::execution::try_execute_query query="fn_arg_idents"
rustc_query_impl::execution::try_execute_query query="fn_sig"
rustc_query_impl::execution::try_execute_query query="late_bound_vars_map"
rustc_query_impl::execution::try_execute_query query="resolve_bound_vars"
rustc_query_impl::execution::try_execute_query query="generics_of"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_query_impl::execution::try_execute_query query="generics_of"
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_middle::queries::default_span self=codegen_fn_attrs(DefId(0:5 ~ bad_resolve[0a7b]::Trait::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^
```
|
These commits modify the If this was unintentional then you should revert the changes before this PR is merged. The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging. |
|
r? @JohnTitor rustbot has assigned @JohnTitor. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
hm. maybe r? @Zalathar ? |
|
|
This comment has been minimized.
This comment has been minimized.
|
Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion. |
The new cycles seem much more informative to me.
|
I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me. |
|
Here's a trace of the queries that caused the cycle for Previously, |
| return span | ||
| } | ||
| if let TaggedQueryKey::def_span(..) = self { | ||
| if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self { |
There was a problem hiding this comment.
hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.
There was a problem hiding this comment.
I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.
This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:
Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from
tests/ui/delegation/bad-resolve):I'll step through how this program behaves on each commit in this PR.
Main branch: Hangs indefinitely with no output.
After first commit (adding safeguards to
ensure_sufficient_stack):a. First, it prints a stacktrace that cuts off early
b. Then it hangs forever.
After calling
abortifensure_sufficient_stackfails:a. First, it prints a ~250 frame stacktrace,
including both the first and last hundred frames.
b. Then it exits.
After adding debug logging, shows the stack trace from above, but first:
a. Prints a trace of the query execution
b. Shows the stacktrace from above.
After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:
Here's an extract of that query trace:
Details
I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within
def_span.In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!
I'm not sure if the bug is in the implementation of
lower_delayed_owner, in the query system, or merely in the fact thatlower_delay_owneris a prerequisite ofhir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to
lower_delayed_owner, not the query system itself.cc @petrochenkov @aerooneqq @Zalathar