rust-lang / rust-lang/rust

ICE: The Rust Compiler Panicked After I Removed A Windows SDK

Open
#128,275 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-LLVM C-bug I-crash I-ICE O-windows-msvc S-needs-repro T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

The Rust compiler worked fine on my Windows desktop computer for a while (starting with the version 1.78). One day after I removed a Windows 10 SDK from Visual Studio Installer, the rustc is never able to compile any bevy example. I tried adding one Windows 10 SDK back to my system(I cannot remember the exact version I uninstalled), the result is still failure.

My operating system is Windows 10 Professional 22H2. The only Windows SDK left on my computer is Windows 11 SDK(10.0.22621.0)

Below are the error messages I get after I tried "cargo run --example breakout" on latest trunk code of bevy code(or any other branch).

====================================================================================


thread 'rustc' panicked at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9\compiler\rustc_middle\src\hir\mod.rs:188:33:
index out of bounds: the len is 11223 but the index is 2660552760
stack backtrace:
Compiling lewton v0.10.2
0: 0x7ffbb9453b3d - std::backtrace_rs::backtrace::dbghelp64::trace
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src....\backtrace\src\backtrace\dbghelp64.rs:91
1: 0x7ffbb9453b3d - std::backtrace_rs::backtrace::trace_unsynchronized
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src....\backtrace\src\backtrace\mod.rs:66
2: 0x7ffbb9453b3d - std::sys_common::backtrace::_print_fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:68
3: 0x7ffbb9453b3d - std::sys_common::backtrace::_print::impl$0::fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:44
4: 0x7ffbb9484779 - core::fmt::rt::Argument::fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\fmt\rt.rs:165
5: 0x7ffbb9484779 - core::fmt::write
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\fmt\mod.rs:1168
6: 0x7ffbb944a391 - std::io::Write::write_fmtstd::sys::pal::windows::stdio::Stderr
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\io\mod.rs:1835
7: 0x7ffbb9453916 - std::sys_common::backtrace::print
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:34
8: 0x7ffbb9456af8 - std::panicking::default_hook::closure$1
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:271
9: 0x7ffbb94567a6 - std::panicking::default_hook
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:298
Compiling fnv v1.0.7
10: 0x7ffbb550a39c - memchr
11: 0x7ffbb9457127 - alloc::boxed::impl$50::call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\alloc\src\boxed.rs:2077
12: 0x7ffbb9457127 - std::panicking::rust_panic_with_hook
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:799
13: 0x7ffbb9456fb7 - std::panicking::begin_panic_handler::closure$0
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:664
14: 0x7ffbb94544af - std::sys_common::backtrace::__rust_end_short_backtracestd::panicking::begin_panic_handler::closure_env$0,never$
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:171
15: 0x7ffbb9456c68 - std::panicking::begin_panic_handler
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:652
16: 0x7ffbb94ad124 - core::panicking::panic_fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\panicking.rs:72
17: 0x7ffbb94ad35e - core::panicking::panic_bounds_check
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\panicking.rs:274
18: 0x7ffbb41c7019 - <tracing_subscriber[9cea76178f68bf35]::registry::sharded::Registry as core[788d601b121ab5d5]::default::Default>::default
19: 0x7ffbb4be185a - rustc_query_impl[f16a2bc9f261c9b3]::plumbing::query_key_hash_verify_all
20: 0x7ffbb4b2a264 - rustc_ty_utils[8ea27dfdeb4a5d12]::ty::self_ty_of_trait_impl_enabling_order_dep_trait_object_hack
21: 0x7ffbb4be2c43 - rustc_query_impl[f16a2bc9f261c9b3]::plumbing::query_key_hash_verify_all
22: 0x7ffbb538441c - <rustc_middle[1c821902dd0c6a84]::hir::map::Map>::attrs
23: 0x7ffbb49f59d0 - <pulldown_cmark[abc25a02e03f5439]::parse::Parser as core[788d601b121ab5d5]::iter::traits::iterator::Iterator>::next
24: 0x7ffbb49e5067 - <pulldown_cmark[abc25a02e03f5439]::parse::Parser as core[788d601b121ab5d5]::iter::traits::iterator::Iterator>::next
25: 0x7ffbb4a02295 - <rustc_passes[26ec330937c00dd5]::check_attr::CheckAttrVisitor as rustc_hir[14dff18277ee88c]::intravisit::Visitor>::visit_impl_item
26: 0x7ffbb4a024cd - rustc_passes[26ec330937c00dd5]::check_attr::check_mod_attrs
27: 0x7ffbb3db3efa - <dyn std[4f3d19e5cfafb1ab]::io::Write as nu_ansi_term[383177f773185f1f]::write::AnyWrite>::write_str
28: 0x7ffbb3d43f78 - rustc_ty_utils[8ea27dfdeb4a5d12]::ty::adt_sized_constraint
Compiling vec_map v0.8.2
29: 0x7ffbb3dc74b1 - rustc_query_impl[f16a2bc9f261c9b3]::query_system
30: 0x7ffbb41d01af - rustc_interface[910c478ad43be9b7]::passes::analysis
31: 0x7ffbb3db5aaa - <dyn std[4f3d19e5cfafb1ab]::io::Write as nu_ansi_term[383177f773185f1f]::write::AnyWrite>::write_str
32: 0x7ffbb3d2ca01 - rustc_ty_utils[8ea27dfdeb4a5d12]::ty::adt_sized_constraint
33: 0x7ffbb3dbe577 - rustc_query_impl[f16a2bc9f261c9b3]::query_system
34: 0x7ffbb143653d - _wpgmptr
35: 0x7ffbb1433806 - _wpgmptr
36: 0x7ffbb143b3a9 - _wpgmptr
37: 0x7ffbb946832d - alloc::boxed::impl$48::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\alloc\src\boxed.rs:2063
38: 0x7ffbb946832d - alloc::boxed::impl$48::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\alloc\src\boxed.rs:2063
39: 0x7ffbb946832d - std::sys::pal::windows::thread::impl$0::new::thread_start
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys\pal\windows\thread.rs:52
40: 0x7ffbfbc47374 - BaseThreadInitThunk
41: 0x7ffbfd05cc91 - RtlUserThreadStart

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.80.0 (https://github.com/rust-lang/rust/commit/051478957371ee0084a7c0913941d2a8c4757bb9 2024-07-21) running on x86_64-pc-windows-msvc

note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
panicked at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9\compiler\rustc_hir\src\definitions.rs:81:26:
thread panicked while processing panic. aborting.
thread 'rustc' panicked at /rust/deps\indexmap-2.2.6\src\map\core.rs:37:15:
index out of bounds: the len is 3584 but the index is 9007199254744067
stack backtrace:
0: 0x7ffbb9453b3d - std::backtrace_rs::backtrace::dbghelp64::trace
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src....\backtrace\src\backtrace\dbghelp64.rs:91
1: 0x7ffbb9453b3d - std::backtrace_rs::backtrace::trace_unsynchronized
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src....\backtrace\src\backtrace\mod.rs:66
2: 0x7ffbb9453b3d - std::sys_common::backtrace::_print_fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:68
3: 0x7ffbb9453b3d - std::sys_common::backtrace::_print::impl$0::fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:44
4: 0x7ffbb9484779 - core::fmt::rt::Argument::fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\fmt\rt.rs:165
5: 0x7ffbb9484779 - core::fmt::write
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\fmt\mod.rs:1168
6: 0x7ffbb944a391 - std::io::Write::write_fmtstd::sys::pal::windows::stdio::Stderr
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\io\mod.rs:1835
7: 0x7ffbb9453916 - std::sys_common::backtrace::print
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:34
8: 0x7ffbb9456af8 - std::panicking::default_hook::closure$1
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:271
9: 0x7ffbb94567a6 - std::panicking::default_hook
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:298
Compiling fontdb v0.16.2
10: 0x7ffbb550a39c - memchr
11: 0x7ffbb9457127 - alloc::boxed::impl$50::call
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\alloc\src\boxed.rs:2077
12: 0x7ffbb9457127 - std::panicking::rust_panic_with_hook
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:799
13: 0x7ffbb9456fb7 - std::panicking::begin_panic_handler::closure$0
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:664
14: 0x7ffbb94544af - std::sys_common::backtrace::__rust_end_short_backtracestd::panicking::begin_panic_handler::closure_env$0,never$
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys_common\backtrace.rs:171
15: 0x7ffbb9456c68 - std::panicking::begin_panic_handler
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\panicking.rs:652
16: 0x7ffbb94ad124 - core::panicking::panic_fmt
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\panicking.rs:72
17: 0x7ffbb94ad35e - core::panicking::panic_bounds_check
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\core\src\panicking.rs:274
18: 0x7ffbb490dc72 - <rustc_ast_lowering[a0da7e0c932a075]::LoweringContext>::lower_generic_param
19: 0x7ffbb49bb699 - <rustc_resolve[8978f99e429eaae2]::Resolver>::into_outputs
20: 0x7ffbb49b2b80 - <rustc_resolve[8978f99e429eaae2]::Resolver>::into_outputs
21: 0x7ffbb490f6f3 - <rustc_ast_lowering[a0da7e0c932a075]::LoweringContext>::lower_generic_param
22: 0x7ffbb4965d57 - <rustc_resolve[8978f99e429eaae2]::late::LateResolutionVisitor as rustc_ast[552c7cfc53262d22]::visit::Visitor>::visit_fn
23: 0x7ffbb4913e6e - <rustc_ast_lowering[a0da7e0c932a075]::LoweringContext>::lower_generic_param
24: 0x7ffbb4949640 - <rustc_resolve[8978f99e429eaae2]::late::LateResolutionVisitor as rustc_ast[552c7cfc53262d22]::visit::Visitor>::visit_item
25: 0x7ffbb4913efe - <rustc_ast_lowering[a0da7e0c932a075]::LoweringContext>::lower_generic_param
26: 0x7ffbb494a25e - <rustc_resolve[8978f99e429eaae2]::late::LateResolutionVisitor as rustc_ast[552c7cfc53262d22]::visit::Visitor>::visit_item
27: 0x7ffbb4913efe - <rustc_ast_lowering[a0da7e0c932a075]::LoweringContext>::lower_generic_param
28: 0x7ffbb494a25e - <rustc_resolve[8978f99e429eaae2]::late::LateResolutionVisitor as rustc_ast[552c7cfc53262d22]::visit::Visitor>::visit_item
29: 0x7ffbb4913efe - <rustc_ast_lowering[a0da7e0c932a075]::LoweringContext>::lower_generic_param
30: 0x7ffbb494a25e - <rustc_resolve[8978f99e429eaae2]::late::LateResolutionVisitor as rustc_ast[552c7cfc53262d22]::visit::Visitor>::visit_item
31: 0x7ffbb4998a86 - <rustc_resolve[8978f99e429eaae2]::Resolver>::into_outputs
32: 0x7ffbb3cdd7e4 - <rustc_resolve[8978f99e429eaae2]::Resolver>::resolve_crate
33: 0x7ffbb41cdb16 - rustc_interface[910c478ad43be9b7]::passes::resolver_for_lowering_raw
34: 0x7ffbb3db5531 - <dyn std[4f3d19e5cfafb1ab]::io::Write as nu_ansi_term[383177f773185f1f]::write::AnyWrite>::write_str
35: 0x7ffbb3da034d - <dyn std[4f3d19e5cfafb1ab]::io::Write as nu_ansi_term[383177f773185f1f]::write::AnyWrite>::write_str
36: 0x7ffbb3d29a14 - rustc_ty_utils[8ea27dfdeb4a5d12]::ty::adt_sized_constraint
37: 0x7ffbb3dbce36 - rustc_query_impl[f16a2bc9f261c9b3]::query_system
38: 0x7ffbb40ce1c0 - <rustc_middle[1c821902dd0c6a84]::ty::context::TyCtxt>::resolver_for_lowering
39: 0x7ffbb14363d5 - _wpgmptr
40: 0x7ffbb1433806 - _wpgmptr
41: 0x7ffbb143b3a9 - _wpgmptr
42: 0x7ffbb946832d - alloc::boxed::impl$48::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\alloc\src\boxed.rs:2063
43: 0x7ffbb946832d - alloc::boxed::impl$48::call_once
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\alloc\src\boxed.rs:2063
44: 0x7ffbb946832d - std::sys::pal::windows::thread::impl$0::new::thread_start
at /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library\std\src\sys\pal\windows\thread.rs:52
45: 0x7ffbfbc47374 - BaseThreadInitThunk
46: 0x7ffbfd05cc91 - RtlUserThreadStart

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.80.0 (https://github.com/rust-lang/rust/commit/051478957371ee0084a7c0913941d2a8c4757bb9 2024-07-21) running on x86_64-pc-windows-msvc

note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [resolver_for_lowering_raw] getting the resolver for lowering
end of query stack

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the panic with cargo run --example breakout on Windows 10 using the reported Rust toolchain and SDK setup. Inspect the stack-referenced locations compiler/rustc_middle/src/hir/mod.rs and compiler/rustc_hir/src/definitions.rs, then reduce the environment or example to identify whether SDK removal triggers the ICE. Done means the cause is isolated and the compiler no longer panics for the reproducer, with a regression test if the project’s investigation identifies one.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.