rust-lang / rust-lang/rust

ICE when incremental compilation

Open
#122,116 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-incr-comp C-bug I-ICE S-needs-repro T-compiler
Dominant language
Rust
Stars
119k
Forks
16.2k
PR merge metrics
PR metrics pending

Description

Code

the project is too big unfortunately. this happens when compiling 10s of files.

but the compiler told me to attach a file:
rust-ice.txt

Meta

rustc --version --verbose:

❯ prebuilt/third_party/rust/linux-x64/bin/rustc --version --verbose
rustc 1.78.0-nightly (8c0b4f67c 2024-02-05)
binary: rustc
commit-hash: 8c0b4f67c9b4bf477df38c16669fd576d46a2b3d
commit-date: 2024-02-05
host: x86_64-unknown-linux-gnu
release: 1.78.0-nightly
LLVM version: 17.0.6
Error output
error: internal compiler error: encountered incremental compilation error with module_children(vfs_macros[3dbe])
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p vfs` or `cargo clean` to allow your project to compile
  = note: Please follow the instructions below to create a bug report with the provided information
  = note: See <https://github.com/rust-lang/rust/issues/84970> for more information

thread 'rustc' panicked at /b/s/w/ir/x/w/fuchsia-third_party-rust/compiler/rustc_query_system/src/query/plumbing.rs:727:9:
Found unstable fingerprints for module_children(vfs_macros[3dbe]): [ModChild { ident: pseudo_directory#0, res: Def(Macro(Bang), DefId(72:25 ~ vfs_macros[3dbe]::pseudo_directory)), vis: Public, reexport_chain: [] }, ModChild { ident: mut_pseudo_directory#0, res: Def(Macro(Bang), DefId(72:26 ~ vfs_macros[3dbe]::mut_pseudo_directory)), vis: Public, reexport_chain: [] }, ModChild { ident: attribute_query#0, res: Def(Macro(Bang), DefId(72:40 ~ vfs_macros[3dbe]::attribute_query)), vis: Public, reexport_chain: [] }]
Backtrace

error: internal compiler error: encountered incremental compilation error with module_children(vfs_macros[3dbe])
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p vfs` or `cargo clean` to allow your project to compile
  = note: Please follow the instructions below to create a bug report with the provided information
  = note: See <https://github.com/rust-lang/rust/issues/84970> for more information

thread 'rustc' panicked at /b/s/w/ir/x/w/fuchsia-third_party-rust/compiler/rustc_query_system/src/query/plumbing.rs:727:9:
Found unstable fingerprints for module_children(vfs_macros[3dbe]): [ModChild { ident: pseudo_directory#0, res: Def(Macro(Bang), DefId(72:25 ~ vfs_macros[3dbe]::pseudo_directory)), vis: Public, reexport_chain: [] }, ModChild { ident: mut_pseudo_directory#0, res: Def(Macro(Bang), DefId(72:26 ~ vfs_macros[3dbe]::mut_pseudo_directory)), vis: Public, reexport_chain: [] }, ModChild { ident: attribute_query#0, res: Def(Macro(Bang), DefId(72:40 ~ vfs_macros[3dbe]::attribute_query)), vis: Public, reexport_chain: [] }]
stack backtrace:
   0: rust_begin_unwind
             at /b/s/w/ir/x/w/fuchsia-third_party-rust/library/std/src/panicking.rs:647:5
   1: core::panicking::panic_fmt
             at /b/s/w/ir/x/w/fuchsia-third_party-rust/library/core/src/panicking.rs:72:14
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>.2381
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 16]>>
   4: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   5: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 16]>>>
   6: <rustc_resolve::Resolver>::resolutions
   7: <rustc_resolve::Resolver>::resolve_ident_in_module_unadjusted_ext
   8: <rustc_resolve::Resolver>::resolve_ident_in_module_ext
   9: <rustc_resolve::Resolver>::resolve_import::{closure#0}
  10: <rustc_resolve::Resolver as rustc_expand::base::ResolverExpand>::resolve_imports
  11: <rustc_expand::expand::MacroExpander>::fully_expand_fragment
  12: <rustc_expand::expand::MacroExpander>::expand_crate
  13: <rustc_session::session::Session>::time::<rustc_ast::ast::Crate, rustc_interface::passes::configure_and_expand::{closure#1}>
  14: rustc_interface::passes::resolver_for_lowering
      [... omitted 2 frames ...]
  15: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_driver_impl::run_compiler::{closure#0}::{closure#0}::{closure#2}, &rustc_data_structures::steal::Steal<(rustc_middle::ty::ResolverAstLowering, alloc::sync::Arc<rustc_ast::ast::Crate>)>>
  16: <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
  17: rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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: please attach the file at `/usr/local/google/home/yifeit/vg/out/minimal.qemu-x64/rustc-ice-2024-03-06T22_44_12-2588506.txt` to your bug report

note: compiler flags: --crate-type rlib -Z dep-info-omit-d-target -C linker=../../prebuilt/third_party/clang/linux-x64/bin/lld -C link-arg=--sysroot=x64-shared/gen/zircon/public/sysroot/cpp -C link-arg=-L../../prebuilt/third_party/clang/linux-x64/bin/../lib/x86_64-unknown-fuchsia/noexcept -C link-arg=-L../../prebuilt/third_party/clang/linux-x64/lib/clang/19/lib/x86_64-unknown-fuchsia -C link-arg=--pack-dyn-relocs=relr -C link-arg=-dynamic-linker=ld.so.1 -C link-arg=--icf=all -C link-arg=-zrel -Z remap-cwd-prefix=. -C force-frame-pointers -C opt-level=0 -C debuginfo=2 -C link-arg=--compress-debug-sections=zstd -C debug-assertions=yes -C incremental=[REDACTED] -Z allow-features= -C prefer-dynamic -C link-args=-zstack-size=0x200000 -C panic=abort -C force-unwind-tables=yes -Z panic_abort_tests -C symbol-mangling-version=v0 -C link-arg=-Bdynamic -C link-arg=x64-shared/obj/zircon/system/ulib/sync/libsync.a -C link-arg=gen/src/zircon/lib/zircon/zircon.x86_64/libzircon.so

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

query stack during panic:
#0 [module_children] collecting child items of module `vfs_macros`
#1 [resolver_for_lowering] getting the resolver for lowering
end of query stack
error: aborting due to 1 previous error

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 reviewing the attached rust-ice.txt and the backtrace around compiler/rustc_query_system/src/query/plumbing.rs:727, focusing on the module_children query for vfs_macros. Reproduce the incremental-compilation failure in the reported project if possible, then compare behavior after cargo clean -p vfs; done means identifying a reproducible cause or a compiler fix with a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.