[ICE]: Found unstable fingerprints for evaluate_obligation
Open
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
Code
// too large.
Meta
rustc --version --verbose:
rustc 1.95.0 (59807616e 2026-04-14)
binary: rustc
commit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860
commit-date: 2026-04-14
host: x86_64-unknown-linux-gnu
release: 1.95.0
LLVM version: 22.1.2
Error output
error: internal compiler error: encountered incremental compilation error with evaluate_obligation(5aab3bc36898b930-42973506f0649e50)
|
= note: please follow the instructions below to create a bug report with the provided information
= note: for incremental compilation bugs, having a reproduction is vital
= note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
= note: as a workaround, you can run `cargo clean -p libclient` or `cargo clean` to allow your project to compile
thread 'rustc' (1004613) panicked at /rustc-dev/59807616e1fa2540724bfbac14d7976d7e4a3860/compiler/rustc_middle/src/verify_ich.rs:80:9:
Found unstable fingerprints for evaluate_obligation(5aab3bc36898b930-42973506f0649e50): Err(Canonical)
stack backtrace:
0: 0x7d985679314b - <<std[e28293b1aa0f68bd]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c1f1a4ba060b9bfa]::fmt::Display>::fmt
1: 0x7d9856e1f408 - core[c1f1a4ba060b9bfa]::fmt::write
2: 0x7d98583683b6 - <std[e28293b1aa0f68bd]::sys::stdio::unix::Stderr as std[e28293b1aa0f68bd]::io::Write>::write_fmt
3: 0x7d9856769238 - std[e28293b1aa0f68bd]::panicking::default_hook::{closure#0}
4: 0x7d98567865b3 - std[e28293b1aa0f68bd]::panicking::default_hook
5: 0x7d985575cc30 - std[e28293b1aa0f68bd]::panicking::update_hook::<alloc[fdfd2bd8633a6659]::boxed::Box<rustc_driver_impl[e4ca9dd5dd6cf2a8]::install_ice_hook::{closure#1}>>::{closure#0}
6: 0x7d9856786892 - std[e28293b1aa0f68bd]::panicking::panic_with_hook
7: 0x7d98567692f8 - std[e28293b1aa0f68bd]::panicking::panic_handler::{closure#0}
8: 0x7d9856760029 - std[e28293b1aa0f68bd]::sys::backtrace::__rust_end_short_backtrace::<std[e28293b1aa0f68bd]::panicking::panic_handler::{closure#0}, !>
9: 0x7d985676ad5d - __rustc[b7974e8690430dd9]::rust_begin_unwind
10: 0x7d98534de82c - core[c1f1a4ba060b9bfa]::panicking::panic_fmt
11: 0x7d9855d987d8 - rustc_middle[9956b31dc9b62104]::verify_ich::incremental_verify_ich_failed
12: 0x7d9857367d2b - rustc_middle[9956b31dc9b62104]::verify_ich::incremental_verify_ich::<rustc_middle[9956b31dc9b62104]::query::erase::ErasedData<[u8; 2usize]>>
13: 0x7d98576e4929 - rustc_query_impl[b21371cac9e22a84]::execution::try_execute_query::<rustc_middle[9956b31dc9b62104]::query::caches::DefaultCache<rustc_type_ir[9c1281d1b8893e1d]::canonical::CanonicalQueryInput<rustc_middle[9956b31dc9b62104]::ty::context::TyCtxt, rustc_middle[9956b31dc9b62104]::ty::ParamEnvAnd<rustc_middle[9956b31dc9b62104]::ty::predicate::Predicate>>, rustc_middle[9956b31dc9b62104]::query::erase::ErasedData<[u8; 2usize]>>, true>
14: 0x7d98576e2982 - rustc_query_impl[b21371cac9e22a84]::query_impl::evaluate_obligation::execute_query_incr::__rust_end_short_backtrace
15: 0x7d98575f6d87 - <rustc_trait_selection[79d0130c2732d367]::traits::fulfill::FulfillProcessor as rustc_data_structures[2c167692117eb14d]::obligation_forest::ObligationProcessor>::process_obligation
16: 0x7d9856e06c01 - <rustc_data_structures[2c167692117eb14d]::obligation_forest::ObligationForest<rustc_trait_selection[79d0130c2732d367]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[79d0130c2732d367]::traits::fulfill::FulfillProcessor>
17: 0x7d98572f30f9 - <rustc_trait_selection[79d0130c2732d367]::traits::engine::ObligationCtxt>::make_canonicalized_query_response::<()>
18: 0x7d98572ed0a0 - rustc_traits[bd42b8ac0103835d]::type_op::type_op_prove_predicate
19: 0x7d98576f7d1e - rustc_query_impl[b21371cac9e22a84]::execution::try_execute_query::<rustc_middle[9956b31dc9b62104]::query::caches::DefaultCache<rustc_type_ir[9c1281d1b8893e1d]::canonical::CanonicalQueryInput<rustc_middle[9956b31dc9b62104]::ty::context::TyCtxt, rustc_middle[9956b31dc9b62104]::ty::ParamEnvAnd<rustc_middle[9956b31dc9b62104]::traits::query::type_op::ProvePredicate>>, rustc_middle[9956b31dc9b62104]::query::erase::ErasedData<[u8; 8usize]>>, true>
20: 0x7d98576f6a18 - rustc_query_impl[b21371cac9e22a84]::query_impl::type_op_prove_predicate::execute_query_incr::__rust_end_short_backtrace
21: 0x7d9857476908 - <rustc_borrowck[70f000df51ab9cb4]::type_check::TypeChecker>::normalize_and_prove_instantiated_predicates
22: 0x7d985401ab26 - <rustc_borrowck[70f000df51ab9cb4]::type_check::TypeChecker as rustc_middle[9956b31dc9b62104]::mir::visit::Visitor>::visit_operand
23: 0x7d9857d46393 - <rustc_borrowck[70f000df51ab9cb4]::type_check::TypeChecker as rustc_middle[9956b31dc9b62104]::mir::visit::Visitor>::visit_body
24: 0x7d9857d2ff29 - rustc_borrowck[70f000df51ab9cb4]::type_check::type_check
25: 0x7d9857ea7def - <rustc_borrowck[70f000df51ab9cb4]::root_cx::BorrowCheckRootCtxt>::do_mir_borrowck
26: 0x7d9857ea3736 - rustc_borrowck[70f000df51ab9cb4]::mir_borrowck
27: 0x7d9857ea3567 - rustc_query_impl[b21371cac9e22a84]::query_impl::mir_borrowck::invoke_provider_fn::__rust_begin_short_backtrace
28: 0x7d9856f3cc7d - rustc_query_impl[b21371cac9e22a84]::execution::try_execute_query::<rustc_data_structures[2c167692117eb14d]::vec_cache::VecCache<rustc_span[e3c9a1967c4921fd]::def_id::LocalDefId, rustc_middle[9956b31dc9b62104]::query::erase::ErasedData<[u8; 8usize]>, rustc_middle[9956b31dc9b62104]::dep_graph::graph::DepNodeIndex>, true>
29: 0x7d9856fa83d1 - rustc_query_impl[b21371cac9e22a84]::query_impl::mir_borrowck::execute_query_incr::__rust_end_short_backtrace
30: 0x7d9857ba98f0 - rustc_mir_transform[2be6bdc629d1da0e]::mir_drops_elaborated_and_const_checked
31: 0x7d9857ba8e99 - rustc_query_impl[b21371cac9e22a84]::query_impl::mir_drops_elaborated_and_const_checked::invoke_provider_fn::__rust_begin_short_backtrace
32: 0x7d9856f3c1fc - rustc_query_impl[b21371cac9e22a84]::execution::try_execute_query::<rustc_data_structures[2c167692117eb14d]::vec_cache::VecCache<rustc_span[e3c9a1967c4921fd]::def_id::LocalDefId, rustc_middle[9956b31dc9b62104]::query::erase::ErasedData<[u8; 8usize]>, rustc_middle[9956b31dc9b62104]::dep_graph::graph::DepNodeIndex>, true>
33: 0x7d9856fa8021 - rustc_query_impl[b21371cac9e22a84]::query_impl::mir_drops_elaborated_and_const_checked::execute_query_incr::__rust_end_short_backtrace
34: 0x7d9856f37888 - <rustc_middle[9956b31dc9b62104]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_interface[c8170c4b7b680ee8]::passes::run_required_analyses::{closure#1}::{closure#0}>::{closure#0}
35: 0x7d9856f36c6f - rustc_interface[c8170c4b7b680ee8]::passes::analysis
36: 0x7d98583ec447 - rustc_query_impl[b21371cac9e22a84]::execution::try_execute_query::<rustc_middle[9956b31dc9b62104]::query::caches::SingleCache<rustc_middle[9956b31dc9b62104]::query::erase::ErasedData<[u8; 0usize]>>, true>
37: 0x7d98583ebdb4 - rustc_query_impl[b21371cac9e22a84]::query_impl::analysis::execute_query_incr::__rust_end_short_backtrace
38: 0x7d985805632d - rustc_interface[c8170c4b7b680ee8]::interface::run_compiler::<(), rustc_driver_impl[e4ca9dd5dd6cf2a8]::run_compiler::{closure#0}>::{closure#1}
39: 0x7d985802663e - std[e28293b1aa0f68bd]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[c8170c4b7b680ee8]::util::run_in_thread_with_globals<rustc_interface[c8170c4b7b680ee8]::util::run_in_thread_pool_with_globals<rustc_interface[c8170c4b7b680ee8]::interface::run_compiler<(), rustc_driver_impl[e4ca9dd5dd6cf2a8]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
40: 0x7d9858026ca0 - <std[e28293b1aa0f68bd]::thread::lifecycle::spawn_unchecked<rustc_interface[c8170c4b7b680ee8]::util::run_in_thread_with_globals<rustc_interface[c8170c4b7b680ee8]::util::run_in_thread_pool_with_globals<rustc_interface[c8170c4b7b680ee8]::interface::run_compiler<(), rustc_driver_impl[e4ca9dd5dd6cf2a8]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[c1f1a4ba060b9bfa]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
41: 0x7d9858027b2c - <std[e28293b1aa0f68bd]::sys::thread::unix::Thread>::new::thread_start
42: 0x7d985189caa4 - start_thread
at ./nptl/pthread_create.c:447:8
43: 0x7d9851929c6c - clone3
at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78:0
44: 0x0 - <unknown>
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.95.0 (59807616e 2026-04-14) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `{closure@libclient/src/impostor/regionimpostortask.rs:245:20: 245:27}: core::marker::Send`
#1 [type_op_prove_predicate] evaluating `type_op_prove_predicate` `ProvePredicate { predicate: Binder { value: TraitPredicate(<{closure@libclient/src/impostor/regionimpostortask.rs:245:20: 245:27} as core::marker::Send>, polarity:Positive), bound_vars: [] } }`
... and 3 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
Backtrace
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `{closure@libclient/src/impostor/regionimpostortask.rs:245:20: 245:27}: core::marker::Send`
#1 [type_op_prove_predicate] evaluating `type_op_prove_predicate` `ProvePredicate { predicate: Binder { value: TraitPredicate(<{closure@libclient/src/impostor/regionimpostortask.rs:245:20: 245:27} as core::marker::Send>, polarity:Positive), bound_vars: [] } }`
#2 [mir_borrowck] borrow-checking `impostor::regionimpostortask::<impl at libclient/src/impostor/regionimpostortask.rs:220:1: 220:31>::start`
#3 [mir_drops_elaborated_and_const_checked] elaborating drops for `impostor::regionimpostortask::<impl at libclient/src/impostor/regionimpostortask.rs:220:1: 220:31>::start::{closure#0}`
#4 [analysis] running analysis passes on crate `libclient`
end of query stack
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with libclient/src/impostor/regionimpostortask.rs around lines 220-245 and the evaluate_obligation query stack; reproduce the incremental compilation failure using the reported rustc version and compiler flags. Reduce the oversized example to a minimal reproduction, then verify that the unstable fingerprint no longer occurs after the relevant compiler change.
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
- 35/100