rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
97.61k stars 12.62k forks source link

Fingerprint error with predicates_of #89071

Closed tonyfinn closed 1 year ago

tonyfinn commented 3 years ago

I encountered the following internal compiler error when running cargo run --bin olympia_native after previously running a tarpaulin instrumented test suite. Earlier today I had upgraded from rustc 1.54.0 to 1.55.0. After running cargo clean then the same cargo run command, the issue went away.

Code

https://gitlab.com/tonyfinn/olympia/-/blob/master/olympia_engine/src/remote/remote_emulator.rs#L86

Meta

rustc --version --verbose:

rustc 1.55.0 (c8dfcfe04 2021-09-06)
binary: rustc
commit-hash: c8dfcfe046a7680554bf4eb612bad840e7631c4b
commit-date: 2021-09-06
host: x86_64-unknown-linux-gnu
release: 1.55.0
LLVM version: 12.0.1

Error output


error: internal compiler error: encountered incremental compilation error with predicates_of(olympia_engine[7a72]::remote::remote_emulator::RemoteEmulatorChannel)
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p olympia_native` 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 'Found unstable fingerprints for predicates_of(olympia_engine[7a72]::remote::remote_emulator::RemoteEmulatorChannel): GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(<Self as olympia_engine::remote::RemoteEmulatorChannel>), []), /home/e/code/olympia/olympia_engine/src/remote/remote_emulator.rs:86:1: 86:32 (#0))] }', /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/compiler/rustc_query_system/src/query/plumbing.rs:624:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: internal compiler error: unexpected panic

note: 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.55.0 (c8dfcfe04 2021-09-06) running on x86_64-unknown-linux-gnu

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

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

query stack during panic:
#0 [predicates_of] computing predicates of `olympia_engine::remote::RemoteEmulatorChannel`
#1 [vtable_entries] finding all vtable entries for trait olympia_engine::remote::RemoteEmulatorChannel
end of query stack
warning: `olympia_native` (bin "olympia_native") generated 5 warnings
error: could not compile `olympia_native` due to previous error; 5 warnings emitted
Backtrace

``` error: internal compiler error: encountered incremental compilation error with predicates_of(olympia_engine[7a72]::remote::remote_emulator::RemoteEmulatorChannel) | = help: This is a known issue with the compiler. Run `cargo clean -p olympia_native` 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 for more information thread 'rustc' panicked at 'Found unstable fingerprints for predicates_of(olympia_engine[7a72]::remote::remote_emulator::RemoteEmulatorChannel): GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(), []), /home/e/code/olympia/olympia_engine/src/remote/remote_emulator.rs:86:1: 86:32 (#0))] }', /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/compiler/rustc_query_system/src/query/plumbing.rs:624:9 stack backtrace: 0: rust_begin_unwind at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:515:5 1: std::panicking::begin_panic_fmt at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:457:5 2: rustc_query_system::query::plumbing::incremental_verify_ich 3: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory 4: rustc_query_system::query::plumbing::get_query_impl 5: ::predicates_of 6: rustc_middle::ty::generics::GenericPredicates::instantiate_identity_into 7: rustc_middle::ty::generics::GenericPredicates::instantiate_identity 8: rustc_trait_selection::traits::object_safety::generics_require_sized_self 9: core::ops::function::impls:: for &mut F>::call_once 10: as core::iter::traits::iterator::Iterator>::next 11: as core::iter::traits::collect::Extend<::Item>>::extend 12: rustc_arena::cold_path 13: rustc_middle::arena::Arena::alloc_from_iter 14: rustc_trait_selection::traits::vtable_entries 15: rustc_middle::dep_graph::::with_deps 16: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory 17: rustc_data_structures::stack::ensure_sufficient_stack 18: rustc_query_system::query::plumbing::get_query_impl 19: ::vtable_entries 20: ::visit_rvalue 21: rustc_mir::monomorphize::collector::collect_neighbours 22: rustc_mir::monomorphize::collector::collect_items_rec 23: rustc_mir::monomorphize::collector::collect_items_rec 24: rustc_mir::monomorphize::collector::collect_items_rec 25: rustc_mir::monomorphize::collector::collect_items_rec 26: rustc_mir::monomorphize::collector::collect_items_rec 27: rustc_mir::monomorphize::collector::collect_items_rec 28: rustc_mir::monomorphize::collector::collect_items_rec 29: rustc_mir::monomorphize::collector::collect_items_rec 30: rustc_mir::monomorphize::collector::collect_crate_mono_items 31: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items 32: rustc_middle::dep_graph::::with_deps 33: rustc_query_system::dep_graph::graph::DepGraph::with_task_impl 34: rustc_data_structures::stack::ensure_sufficient_stack 35: rustc_query_system::query::plumbing::force_query_with_job 36: rustc_query_system::query::plumbing::get_query_impl 37: ::collect_and_partition_mono_items 38: ::codegen_crate 39: rustc_interface::passes::QueryContext::enter 40: rustc_interface::queries::Queries::ongoing_codegen 41: rustc_interface::queries::::enter 42: rustc_span::with_source_map 43: rustc_interface::interface::create_compiler_and_run 44: scoped_tls::ScopedKey::set note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: internal compiler error: unexpected panic note: 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.55.0 (c8dfcfe04 2021-09-06) running on x86_64-unknown-linux-gnu note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin note: some of the compiler flags provided by cargo are hidden query stack during panic: #0 [predicates_of] computing predicates of `olympia_engine::remote::RemoteEmulatorChannel` #1 [vtable_entries] finding all vtable entries for trait olympia_engine::remote::RemoteEmulatorChannel #2 [collect_and_partition_mono_items] collect_and_partition_mono_items end of query stack ```

Aaron1011 commented 3 years ago

@tonyfinn Do you remember the exact tarpaulin command that you ran?

Aaron1011 commented 3 years ago

Also, I think this should be fixed in the latest nightly.

tonyfinn commented 3 years ago

@tonyfinn Do you remember the exact tarpaulin command that you ran?

From my shell history, cargo tarpaulin -v -- --nocapture at the workspace root.

Enselic commented 1 year ago

Triage: Closing as there are no easy step-by-step instructions on how to reproduce, and this is reportedly fixed.