[ICE]: found unstable fingerprints for trait_explicit_predicates_and_bounds
Open
Nobody has claimed this yet.
C-bug
I-ICE
needs-triage
S-needs-repro
T-compiler
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
Code
Unfortunately the code cannot be provided.
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
thread 'rustc' panicked at /rustc-dev/bc2112ed56c99fa649e09ab3ab286afab3d9059a/compiler/rustc_middle/src/verify_ich.rs:82:9:
Found unstable fingerprints for trait_explicit_predicates_and_bounds(my_crate[e7b1]::RoTable): GenericPredicates { parent: None, predicates: [(Binder { value: TraitPredicate(<Self as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, my-crate/src/lib.rs:157:1: 170:2 (#112)), (Binder { value: TraitPredicate(<K as std::marker::Sized>, polarity:Positive), bound_vars: [] }, my-crate/src/lib.rs:157:19: 157:20 (#113)), (Binder { value: TraitPredicate(<V as std::marker::Sized>, polarity:Positive), bound_vars: [] }, my-crate/src/lib.rs:157:22: 157:23 (#114)), (Binder { value: TraitPredicate(<K as ende::en::Encode>, polarity:Positive), bound_vars: [] }, my-crate/src/lib.rs:159:8: 159:18 (#0)), (Binder { value: TraitPredicate(<K as ende::de::Decode>, polarity:Positive), bound_vars: [] }, my-crate/src/lib.rs:159:21: 159:31 (#0)), (Binder { value: TraitPredicate(<V as ende::de::Decode>, polarity:Positive), bound_vars: [] }, my-crate/src/lib.rs:160:8: 160:18 (#0))] }
Backtrace
stack backtrace:
0: 0x7f6dcb1dcccb - <std[9155b05baf46f0b5]::backtrace::Backtrace>::create
1: 0x7f6dcb1dcc15 - <std[9155b05baf46f0b5]::backtrace::Backtrace>::force_capture
2: 0x7f6dca24a73d - std[9155b05baf46f0b5]::panicking::update_hook::<alloc[4a86d35f348a3b04]::boxed::Box<rustc_driver_impl[b791fc15675dcea2]::install_ice_hook::{closure#1}>>::{closure#0}
3: 0x7f6dcb1f0852 - std[9155b05baf46f0b5]::panicking::panic_with_hook
4: 0x7f6dcb1d2c42 - std[9155b05baf46f0b5]::panicking::panic_handler::{closure#0}
5: 0x7f6dcb1c7169 - std[9155b05baf46f0b5]::sys::backtrace::__rust_end_short_backtrace::<std[9155b05baf46f0b5]::panicking::panic_handler::{closure#0}, !>
6: 0x7f6dcb1d46ad - __rustc[b4c4dac14d05b73]::rust_begin_unwind
7: 0x7f6dc810455c - core[b26e7c5dab710dcd]::panicking::panic_fmt
8: 0x7f6dca7f0f46 - rustc_middle[cb7c4bb37f51aac1]::verify_ich::incremental_verify_ich_failed
9: 0x7f6dccae5b55 - rustc_middle[cb7c4bb37f51aac1]::verify_ich::incremental_verify_ich::<rustc_middle[cb7c4bb37f51aac1]::query::erase::ErasedData<[u8; 24usize]>>
10: 0x7f6dcc65ecd1 - rustc_query_impl[f814d044a8094e2a]::execution::try_execute_query::<rustc_data_structures[788feccef7b56953]::vec_cache::VecCache<rustc_span[4065efe3f3bc8177]::def_id::LocalDefId, rustc_middle[cb7c4bb37f51aac1]::query::erase::ErasedData<[u8; 24usize]>, rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepNodeIndex>, true>
11: 0x7f6dcc65e409 - rustc_query_impl[f814d044a8094e2a]::query_impl::trait_explicit_predicates_and_bounds::execute_query_incr::__rust_end_short_backtrace
12: 0x7f6dcc917baf - rustc_hir_analysis[f8649c0bc5b32aaa]::collect::item_bounds::associated_type_bounds
13: 0x7f6dcc916948 - rustc_hir_analysis[f8649c0bc5b32aaa]::collect::item_bounds::explicit_item_bounds_with_filter
14: 0x7f6dcc916814 - rustc_hir_analysis[f8649c0bc5b32aaa]::collect::item_bounds::explicit_item_bounds
15: 0x7f6dcc9167f2 - rustc_query_impl[f814d044a8094e2a]::query_impl::explicit_item_bounds::invoke_provider_fn::__rust_begin_short_backtrace
16: 0x7f6dcbe4c939 - rustc_query_impl[f814d044a8094e2a]::execution::try_execute_query::<rustc_middle[cb7c4bb37f51aac1]::query::caches::DefIdCache<rustc_middle[cb7c4bb37f51aac1]::query::erase::ErasedData<[u8; 16usize]>>, true>
17: 0x7f6dcbe4a161 - rustc_query_impl[f814d044a8094e2a]::execution::force_query_dep_node::<rustc_middle[cb7c4bb37f51aac1]::query::caches::DefIdCache<rustc_middle[cb7c4bb37f51aac1]::query::erase::ErasedData<[u8; 16usize]>>>
18: 0x7f6dcacfcbad - <rustc_query_impl[f814d044a8094e2a]::dep_kind_vtables::make_dep_kind_vtable_for_query<rustc_query_impl[f814d044a8094e2a]::query_impl::explicit_item_bounds::VTableGetter>::{closure#0} as core[b26e7c5dab710dcd]::ops::function::FnOnce<(rustc_middle[cb7c4bb37f51aac1]::ty::context::TyCtxt, rustc_middle[cb7c4bb37f51aac1]::dep_graph::dep_node::DepNode, rustc_middle[cb7c4bb37f51aac1]::dep_graph::serialized::SerializedDepNodeIndex)>>::call_once
19: 0x7f6dcb823e63 - <rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepGraphData>::try_mark_previous_green
20: 0x7f6dcb823a94 - <rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepGraphData>::try_mark_previous_green
21: 0x7f6dcb823a94 - <rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepGraphData>::try_mark_previous_green
22: 0x7f6dcb823a94 - <rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepGraphData>::try_mark_previous_green
23: 0x7f6dcb823a94 - <rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepGraphData>::try_mark_previous_green
24: 0x7f6dcbba6923 - <rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepGraph>::try_mark_green
25: 0x7f6dcbba66e5 - rustc_query_impl[f814d044a8094e2a]::execution::ensure_can_skip_execution::<rustc_data_structures[788feccef7b56953]::vec_cache::VecCache<rustc_span[4065efe3f3bc8177]::def_id::CrateNum, rustc_middle[cb7c4bb37f51aac1]::query::erase::ErasedData<[u8; 16usize]>, rustc_middle[cb7c4bb37f51aac1]::dep_graph::graph::DepNodeIndex>>
26: 0x7f6dccb25b46 - rustc_query_impl[f814d044a8094e2a]::query_impl::check_type_wf::execute_query_incr::__rust_end_short_backtrace
27: 0x7f6dcbca781e - rustc_hir_analysis[f8649c0bc5b32aaa]::check_crate
28: 0x7f6dcbca9d0c - rustc_interface[84e7048b04034882]::passes::analysis
29: 0x7f6dcca607c2 - rustc_query_impl[f814d044a8094e2a]::execution::try_execute_query::<rustc_middle[cb7c4bb37f51aac1]::query::caches::SingleCache<rustc_middle[cb7c4bb37f51aac1]::query::erase::ErasedData<[u8; 0usize]>>, true>
30: 0x7f6dcca600f7 - rustc_query_impl[f814d044a8094e2a]::query_impl::analysis::execute_query_incr::__rust_end_short_backtrace
31: 0x7f6dcc999c52 - rustc_interface[84e7048b04034882]::interface::run_compiler::<(), rustc_driver_impl[b791fc15675dcea2]::run_compiler::{closure#0}>::{closure#1}
32: 0x7f6dcc9ceffa - std[9155b05baf46f0b5]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[84e7048b04034882]::util::run_in_thread_with_globals<rustc_interface[84e7048b04034882]::util::run_in_thread_pool_with_globals<rustc_interface[84e7048b04034882]::interface::run_compiler<(), rustc_driver_impl[b791fc15675dcea2]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
33: 0x7f6dcc9cedad - <std[9155b05baf46f0b5]::thread::lifecycle::spawn_unchecked<rustc_interface[84e7048b04034882]::util::run_in_thread_with_globals<rustc_interface[84e7048b04034882]::util::run_in_thread_pool_with_globals<rustc_interface[84e7048b04034882]::interface::run_compiler<(), rustc_driver_impl[b791fc15675dcea2]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b26e7c5dab710dcd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
34: 0x7f6dcc9c5290 - <std[9155b05baf46f0b5]::sys::thread::unix::Thread>::new::thread_start
35: 0x7f6dc66a755f - <unknown>
36: 0x7f6dc67265ac - <unknown>
37: 0x0 - <unknown>
rustc version: 1.98.0-nightly (bc2112ed5 2026-06-18)
platform: x86_64-unknown-linux-gnu
query stack during panic:
#0 [trait_explicit_predicates_and_bounds] computing explicit predicates of trait `RoTable`
#1 [explicit_item_bounds] finding item bounds for `RoTable::prefix::{anon_assoc#0}`
#2 [analysis] running analysis passes on crate `my_crate`
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 compiler/rustc_middle/src/verify_ich.rs at the reported panic and trace the trait_explicit_predicates_and_bounds query through explicit_item_bounds and analysis. The report provides no reproducible code, so first determine whether the unstable fingerprint can be reproduced; done means the compiler no longer panics for a reproducer and the behavior is covered by an appropriate regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100