rust-lang / rust-lang/rust

[ICE]: Found unstable fingerprints for evaluate_obligation(<hash>): Ok(EvaluatedToOk)

Open
#156,637 1 comment 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.1k
PR merge metrics
PR metrics pending

Description

Hi, I don't really know how did it happen to be, probably due to incremental compilation. I can't provide a minimal example, but just maybe the backtrace will help somehow. I have 9 ice files which are almost identical, here I provide one of them.

Meta

rustc --version --verbose:

rustc 1.97.0-nightly (ad3a598ca 2026-05-03)
binary: rustc
commit-hash: ad3a598ca4bc7c68bcbbce3e0d3be9a7618df190
commit-date: 2026-05-03
host: x86_64-unknown-linux-gnu
release: 1.97.0-nightly
LLVM version: 22.1.4
Error output
thread 'rustc' panicked at /rustc-dev/ad3a598ca4bc7c68bcbbce3e0d3be9a7618df190/compiler/rustc_middle/src/verify_ich.rs:82:9:
Found unstable fingerprints for evaluate_obligation(699fbf93707fac87-8fbe3b606f564c1e): Ok(EvaluatedToOk)

Backtrace

thread 'rustc' panicked at /rustc-dev/ad3a598ca4bc7c68bcbbce3e0d3be9a7618df190/compiler/rustc_middle/src/verify_ich.rs:82:9:
Found unstable fingerprints for evaluate_obligation(699fbf93707fac87-8fbe3b606f564c1e): Ok(EvaluatedToOk)
stack backtrace:
   0:     0x7fc4df9ea7eb - <std[153009beb0d131ab]::backtrace::Backtrace>::create
   1:     0x7fc4df9ea735 - <std[153009beb0d131ab]::backtrace::Backtrace>::force_capture
   2:     0x7fc4de90a47d - std[153009beb0d131ab]::panicking::update_hook::<alloc[7edc5d3fecd118c3]::boxed::Box<rustc_driver_impl[ce0835dfefab141d]::install_ice_hook::{closure#1}>>::{closure#0}
   3:     0x7fc4df9fd432 - std[153009beb0d131ab]::panicking::panic_with_hook
   4:     0x7fc4df9dfd32 - std[153009beb0d131ab]::panicking::panic_handler::{closure#0}
   5:     0x7fc4df9d4269 - std[153009beb0d131ab]::sys::backtrace::__rust_end_short_backtrace::<std[153009beb0d131ab]::panicking::panic_handler::{closure#0}, !>
   6:     0x7fc4df9e179d - __rustc[a5947e614d7bb0f8]::rust_begin_unwind
   7:     0x7fc4dcaf296c - core[78df9d5a9219d9b7]::panicking::panic_fmt
   8:     0x7fc4def6cfc7 - rustc_middle[35f5a067ffa0c144]::verify_ich::incremental_verify_ich_failed
   9:     0x7fc4e02f4156 - rustc_middle[35f5a067ffa0c144]::verify_ich::incremental_verify_ich::<rustc_middle[35f5a067ffa0c144]::query::erase::ErasedData<[u8; 2usize]>>
  10:     0x7fc4e08a9f8a - rustc_query_impl[2f52a9c8c9a76d9d]::execution::try_execute_query::<rustc_middle[35f5a067ffa0c144]::query::caches::DefaultCache<rustc_type_ir[3c1cd9fa91348b82]::canonical::CanonicalQueryInput<rustc_middle[35f5a067ffa0c144]::ty::context::TyCtxt, rustc_middle[35f5a067ffa0c144]::ty::ParamEnvAnd<rustc_middle[35f5a067ffa0c144]::ty::predicate::Predicate>>, rustc_middle[35f5a067ffa0c144]::query::erase::ErasedData<[u8; 2usize]>>, true>
  11:     0x7fc4e08a8bb6 - rustc_query_impl[2f52a9c8c9a76d9d]::query_impl::evaluate_obligation::execute_query_incr::__rust_end_short_backtrace
  12:     0x7fc4e08a1c1c - <rustc_trait_selection[9b244e702b3f942b]::traits::fulfill::FulfillProcessor as rustc_data_structures[fd08730a6b0893d5]::obligation_forest::ObligationProcessor>::process_obligation
  13:     0x7fc4e0005a50 - <rustc_data_structures[fd08730a6b0893d5]::obligation_forest::ObligationForest<rustc_trait_selection[9b244e702b3f942b]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[9b244e702b3f942b]::traits::fulfill::FulfillProcessor>
  14:     0x7fc4e03e3db9 - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_call
  15:     0x7fc4e041ac31 - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  16:     0x7fc4e0ca5128 - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_method_call
  17:     0x7fc4e041b693 - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  18:     0x7fc4e0ca2e5c - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_method_call
  19:     0x7fc4e041b693 - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  20:     0x7fc4e03f86b2 - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_block
  21:     0x7fc4e041b66e - <rustc_hir_typeck[16f50491da5982a9]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  22:     0x7fc4e02f601c - rustc_hir_typeck[16f50491da5982a9]::check::check_fn
  23:     0x7fc4e08f77b4 - rustc_hir_typeck[16f50491da5982a9]::typeck_with_inspect::{closure#0}
  24:     0x7fc4e08f45f4 - rustc_query_impl[2f52a9c8c9a76d9d]::query_impl::typeck_root::invoke_provider_fn::__rust_begin_short_backtrace
  25:     0x7fc4e013e5a1 - rustc_query_impl[2f52a9c8c9a76d9d]::execution::try_execute_query::<rustc_data_structures[fd08730a6b0893d5]::vec_cache::VecCache<rustc_span[722ec6ecb2814074]::def_id::LocalDefId, rustc_middle[35f5a067ffa0c144]::query::erase::ErasedData<[u8; 8usize]>, rustc_middle[35f5a067ffa0c144]::dep_graph::graph::DepNodeIndex>, true>
  26:     0x7fc4e013d832 - rustc_query_impl[2f52a9c8c9a76d9d]::query_impl::typeck_root::execute_query_incr::__rust_end_short_backtrace
  27:     0x7fc4e02fc114 - <rustc_middle[35f5a067ffa0c144]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_hir_analysis[db6f5c4cf939ab6c]::check_crate::{closure#1}>::{closure#0}
  28:     0x7fc4e02fbaea - rustc_hir_analysis[db6f5c4cf939ab6c]::check_crate
  29:     0x7fc4e0f427a1 - rustc_interface[f4b432e52c4534c9]::passes::analysis
  30:     0x7fc4e14de1b2 - rustc_query_impl[2f52a9c8c9a76d9d]::execution::try_execute_query::<rustc_middle[35f5a067ffa0c144]::query::caches::SingleCache<rustc_middle[35f5a067ffa0c144]::query::erase::ErasedData<[u8; 0usize]>>, true>
  31:     0x7fc4e14ddb6a - rustc_query_impl[2f52a9c8c9a76d9d]::query_impl::analysis::execute_query_incr::__rust_end_short_backtrace
  32:     0x7fc4e116709b - rustc_interface[f4b432e52c4534c9]::interface::run_compiler::<(), rustc_driver_impl[ce0835dfefab141d]::run_compiler::{closure#0}>::{closure#1}
  33:     0x7fc4e11a18be - std[153009beb0d131ab]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[f4b432e52c4534c9]::util::run_in_thread_with_globals<rustc_interface[f4b432e52c4534c9]::util::run_in_thread_pool_with_globals<rustc_interface[f4b432e52c4534c9]::interface::run_compiler<(), rustc_driver_impl[ce0835dfefab141d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  34:     0x7fc4e11a1fad - <std[153009beb0d131ab]::thread::lifecycle::spawn_unchecked<rustc_interface[f4b432e52c4534c9]::util::run_in_thread_with_globals<rustc_interface[f4b432e52c4534c9]::util::run_in_thread_pool_with_globals<rustc_interface[f4b432e52c4534c9]::interface::run_compiler<(), rustc_driver_impl[ce0835dfefab141d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[78df9d5a9219d9b7]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  35:     0x7fc4e11a2dac - <std[153009beb0d131ab]::sys::thread::unix::Thread>::new::thread_start
  36:     0x7fc4daca597a - <unknown>
  37:     0x7fc4dad292bc - <unknown>
  38:                0x0 - <unknown>


rustc version: 1.97.0-nightly (ad3a598ca 2026-05-03)
platform: x86_64-unknown-linux-gnu

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `error::AccumulatedError: core::marker::Send`
#1 [typeck_root] type-checking `routes::population::router`
#2 [analysis] running analysis passes on crate `pts_backend`
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 at compiler/rustc_middle/src/verify_ich.rs:82 and trace the evaluate_obligation query shown in the query stack, focusing on incremental compilation. Use the reporter's supplied ICE case and nine similar files to reproduce the panic, then add a regression test demonstrating stable fingerprints and no ICE.

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
Quiet
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.