Improved handling for cycles within the query system itself#154387
Improved handling for cycles within the query system itself#154387jyn514 wants to merge 4 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 ? |
|
|
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
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. |
| const STACK_PER_RECURSION: usize = 16 * 1024 * 1024; // 16MB | ||
|
|
||
| thread_local! { | ||
| static TIMES_GROWN: AtomicU16 = const { AtomicU16::new(0) }; |
There was a problem hiding this comment.
This can just be Cell<u16>, right?
| let out = stacker::grow(STACK_PER_RECURSION, f); | ||
| TIMES_GROWN.with(|times| times.fetch_sub(1, Ordering::Relaxed)); | ||
| out | ||
| } |
There was a problem hiding this comment.
I'm pretty sure this new implementation breaks on targets where stacker uses the default impl of not growing the stack. There remaining_stack would return None and thus on ever recursion TIMES_GROWN would be increased, only allowing a 1000x recursion rather than 1000 * however many recursions a single stack segment fits.
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