Skip to content

ICE: found unstable fingerprints for evaluate_obligation #84745

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
m-ou-se opened this issue Apr 30, 2021 · 4 comments
Closed

ICE: found unstable fingerprints for evaluate_obligation #84745

m-ou-se opened this issue Apr 30, 2021 · 4 comments
Labels
A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@m-ou-se
Copy link
Member

m-ou-se commented Apr 30, 2021

This keeps happening consistently in our code base when building a second time. Building fresh (after cargo clean) always works fine.

I didn't see any other unstable fingerprints issue that mention evaluate_obligation like this assertion message does, so filing a new issue.

thread 'rustc' panicked at 'assertion failed: `(left == right)`
  left: `Some(Fingerprint(8537439170242672706, 4648092694241280842))`,
 right: `Some(Fingerprint(212923312148573672, 18320173992410164289))`: found unstable fingerprints for evaluate_obligaton(baf4d03a42da9584-5c3dfbd131f963bf): Ok(EvaluatedToOk)', /rustc/42816d61ead7e46d462df997958ccfd514f8c21c/compiler/rustc_query_system/src/query/plumbing.rs:593:5

Unfortunately, I'm not able to share any of the code. Ping me on Zulip if I can help by trying out some things with a modified rustc or something.

Meta

rustc --version --verbose:

rustc 1.53.0-nightly (42816d61e 2021-04-24)
binary: rustc
commit-hash: 42816d61ead7e46d462df997958ccfd514f8c21c
commit-date: 2021-04-24
host: x86_64-unknown-linux-gnu
release: 1.53.0-nightly
LLVM version: 12.0.0
Backtrace

stack backtrace:
   0: rust_begin_unwind
             at /rustc/42816d61ead7e46d462df997958ccfd514f8c21c/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/42816d61ead7e46d462df997958ccfd514f8c21c/library/core/src/panicking.rs:92:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
   4: rustc_query_system::query::plumbing::incremental_verify_ich
   5: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory
   6: rustc_data_structures::stack::ensure_sufficient_stack
   7: rustc_query_system::query::plumbing::get_query_impl
   8: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::evaluate_obligation
   9: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
  10: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  11: rustc_trait_selection::traits::fulfill::FulfillProcessor::process_trait_obligation
  12: rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations
  13: rustc_data_structures::obligation_forest::ObligationForest<O>::process_obligations
  14: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
  15: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
  16: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
  17: rustc_typeck::check::callee::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
  18: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
  19: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  20: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_decl_initializer
  21: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_decl_local
  22: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
  23: rustc_typeck::check::fn_ctxt::checks::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
  24: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
  25: rustc_typeck::check::expr::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
  26: rustc_typeck::check::check::check_fn
  27: rustc_infer::infer::InferCtxtBuilder::enter
  28: rustc_typeck::check::typeck
  29: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  30: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  31: rustc_data_structures::stack::ensure_sufficient_stack
  32: rustc_query_system::query::plumbing::force_query_with_job
  33: rustc_query_system::query::plumbing::force_query_impl
  34: rustc_query_system::query::plumbing::force_query
  35: rustc_query_impl::query_callbacks::typeck::force_from_dep_node
  36: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
  37: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_green_and_read
  38: rustc_query_system::query::plumbing::ensure_must_run
  39: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck
  40: rustc_middle::ty::<impl rustc_middle::ty::context::TyCtxt>::par_body_owners
  41: rustc_typeck::check::typeck_item_bodies
  42: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  43: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  44: rustc_data_structures::stack::ensure_sufficient_stack
  45: rustc_query_system::query::plumbing::force_query_with_job
  46: rustc_query_system::query::plumbing::get_query_impl
  47: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck_item_bodies
  48: rustc_session::utils::<impl rustc_session::session::Session>::time
  49: rustc_typeck::check_crate
  50: rustc_interface::passes::analysis
  51: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  52: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  53: rustc_data_structures::stack::ensure_sufficient_stack
  54: rustc_query_system::query::plumbing::force_query_with_job
  55: rustc_query_system::query::plumbing::get_query_impl
  56: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  57: rustc_interface::passes::QueryContext::enter
  58: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  59: rustc_span::with_source_map
  60: rustc_interface::interface::create_compiler_and_run
  61: scoped_tls::ScopedKey<T>::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.53.0-nightly (42816d61e 2021-04-24) running on x86_64-unknown-linux-gnu

note: compiler flags: -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on -C incremental --crate-type bin

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

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `fusion_complementary_filter::Settings: autosettings::Settings`
#1 [typeck] type-checking `main`
#2 [typeck_item_bodies] type-checking all item bodies
#3 [analysis] running analysis passes on this crate
end of query stacki

@m-ou-se m-ou-se added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels Apr 30, 2021
@m-ou-se
Copy link
Member Author

m-ou-se commented Apr 30, 2021

cc @Aaron1011

@jonas-schievink jonas-schievink added the A-incr-comp Area: Incremental compilation label Apr 30, 2021
@m-ou-se
Copy link
Member Author

m-ou-se commented Apr 30, 2021

Since the rust-src component seems relevant on some related issues: This happens too on a machine that does not have (and never had) rust-src installed.

@m-ou-se m-ou-se changed the title ICE: found unstable fingerprints for evaluate_obligaton ICE: found unstable fingerprints for evaluate_obligation Apr 30, 2021
@m-ou-se
Copy link
Member Author

m-ou-se commented Apr 30, 2021

I didn't see any other unstable fingerprints issue that mention evaluate_obligation like this assertion message does, so filing a new issue.

Oh, looks like i just made a typo while searching for it. There are other issues with it spelled correctly. ^^'

@jyn514
Copy link
Member

jyn514 commented Apr 30, 2021

This is a duplicate of #83538 I think. (There are lots and lots of duplicates, it's not just you.)

@m-ou-se m-ou-se closed this as completed Apr 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

3 participants