rust-lang / rust-lang/rust

(Reproducible) Found unstable fingerprints for evaluate_obligation(fe6269799238ead4-76dd6f107d00ff42): Ok(EvaluatedToAmbig)

Open
#140,793 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-incr-comp C-bug fixed-by-next-solver I-ICE S-has-mcve T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Code

https://github.com/moxian/rust-mini-things/tree/unstable-eval-ambig

git clone https://github.com/moxian/rust-mini-things.git --branch unstable-eval-ambig
cd rust-mini-things/unstable-eval-ambig
git checkout 5efe9ae
cargo build # succeeds
git checkout 9e4910c
cargo build # ICE
Meta

rustc --version --verbose:

rustc 1.86.0 (05f9846f8 2025-03-31)
binary: rustc
commit-hash: 05f9846f893b09a1be1fc8560e33fc3c815cfecb
commit-date: 2025-03-31
host: x86_64-pc-windows-msvc
release: 1.86.0
LLVM version: 19.1.7

But also present on nightly (rustc 1.88.0-nightly (2e6882ac5 2025-05-05))
If compiling on stable, requires RUSTC_BOOTSTRAP=1 due to code shenanigans

Error output
error: internal compiler error: encountered incremental compilation error with evaluate_obligation(d26c3d7d51bae428-a81b738ddcca7476)
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p reqwest` 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


[backtrace here]

error[E0046]: not all trait items implemented, missing: `Error`, `Future`
  --> vendor\reqwest\src\dns\resolve.rs:48:1
   |
48 | impl Service<HyperName> for DynResolver {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `Error`, `Future` in implementation
   |
   = help: implement the missing item: `type Error = /* Type */;`
   = help: implement the missing item: `type Future = /* Type */;`

For more information about this error, try `rustc --explain E0046`.
warning: `reqwest` (lib) generated 17 warnings
error: could not compile `reqwest` (lib) due to 2 previous errors; 17 warnings emitted
backtrace
thread 'rustc' panicked at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb\compiler\rustc_query_system\src\query\plumbing.rs:731:9:
Found unstable fingerprints for evaluate_obligation(fe6269799238ead4-76dd6f107d00ff42): Ok(EvaluatedToAmbig)
stack backtrace:
   0: std::panicking::begin_panic_handler
             at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library\std\src\panicking.rs:695
   1: core::panicking::panic_fmt
             at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library\core\src\panicking.rs:75
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: RINvNtNtCs1bonBNpMvFl_18rustc_query_system5query8plumbing17try_execute_queryINtCs5uFTMav0Vyp_16rustc_query_impl13DynamicConfigINtNtCsdmqHcUI6doO_21rustc_data_structures9vec_cache8VecCacheNtNtCslRMtD7Kp4gh_10rustc_span6def_id8CrateNumINtNtNtCs2vqUEYxsi4E_12
   4: RINvNtNtCs1bonBNpMvFl_18rustc_query_system5query8plumbing17try_execute_queryINtCs5uFTMav0Vyp_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCs1KkNgFnBCUn_13rustc_type_ir9canonical19CanonicalQueryInputNtNtNtCs2vqUEYxsi4E_12rustc_middle2t
   5: rustc_query_impl::plumbing::query_key_hash_verify_all
   6: <rustc_trait_selection::traits::fulfill::FulfillProcessor as rustc_data_structures::obligation_forest::ObligationProcessor>::process_obligation
   7: <rustc_data_structures::obligation_forest::ObligationForest<rustc_trait_selection::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection::traits::fulfill::FulfillProcessor>
   8: <rustc_trait_selection::traits::engine::ObligationCtxt<rustc_trait_selection::traits::FulfillmentError>>::assumed_wf_types_and_report_errors
   9: <alloc::raw_vec::RawVec<rustc_hir_typeck::method::probe::Candidate>>::grow_one
  10: rustc_hir_typeck::method::probe::method_autoderef_steps
  11: rustc_hir_typeck::method::probe::method_autoderef_steps
  12: rustc_hir_typeck::typeck
  13: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  14: <alloc::raw_vec::RawVec<rustc_hir_typeck::method::probe::Candidate>>::grow_one
  15: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  16: rustc_hir_typeck::typeck
  17: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  18: <alloc::raw_vec::RawVec<rustc_hir_typeck::method::probe::Candidate>>::grow_one
  19: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  20: rustc_hir_typeck::typeck
  21: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  22: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  23: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  24: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  25: rustc_hir_typeck::typeck
  26: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  27: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  28: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  29: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  30: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  31: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  32: rustc_hir_typeck::typeck
  33: rustc_hir_typeck::typeck
  34: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  35: rustc_hir_typeck::typeck
  36: <rustc_hir_typeck::upvar::InferBorrowKind as rustc_hir_typeck::expr_use_visitor::Delegate>::borrow
  37: rustc_hir_typeck::typeck
  38: rustc_query_impl::plumbing::query_key_hash_verify_all
  39: RINvNtNtCs1bonBNpMvFl_18rustc_query_system5query8plumbing17try_execute_queryINtCs5uFTMav0Vyp_16rustc_query_impl13DynamicConfigINtNtCsdmqHcUI6doO_21rustc_data_structures9vec_cache8VecCacheNtNtCslRMtD7Kp4gh_10rustc_span6def_id10LocalDefIdINtNtNtCs2vqUEYxsi4E
  40: <alloc::sync::Arc<rustc_session::cstore::CrateSource>>::drop_slow
  41: <rustc_query_system::query::plumbing::JobOwner<()> as core::ops::drop::Drop>::drop
  42: RINvMs6_NtCs8UpmKsNDoY5_9hashbrown3rawINtB6_8RawTableTTNtNtNtCs2vqUEYxsi4E_12rustc_middle2ty8instance8InstanceNtNtNtBX_3mir4mono14CollectionModeETINtNtNtBX_5query5erase6ErasedAhj20_ENtNtNtCs1bonBNpMvFl_18rustc_query_system9dep_graph5graph12DepNodeIndexEEE1
  43: RINvMs6_NtCs8UpmKsNDoY5_9hashbrown3rawINtB6_8RawTableTTNtNtNtCs2vqUEYxsi4E_12rustc_middle2ty8instance8InstanceNtNtNtBX_3mir4mono14CollectionModeETINtNtNtBX_5query5erase6ErasedAhj20_ENtNtNtCs1bonBNpMvFl_18rustc_query_system9dep_graph5graph12DepNodeIndexEEE1
  44: RINvMs6_NtCs8UpmKsNDoY5_9hashbrown3rawINtB6_8RawTableTTNtNtNtCs2vqUEYxsi4E_12rustc_middle2ty8instance8InstanceNtNtNtBX_3mir4mono14CollectionModeETINtNtNtBX_5query5erase6ErasedAhj20_ENtNtNtCs1bonBNpMvFl_18rustc_query_system9dep_graph5graph12DepNodeIndexEEE1
  45: RINvMs6_NtCs8UpmKsNDoY5_9hashbrown3rawINtB6_8RawTableTTNtNtNtCs2vqUEYxsi4E_12rustc_middle2ty8instance8InstanceNtNtNtBX_3mir4mono14CollectionModeETINtNtNtBX_5query5erase6ErasedAhj20_ENtNtNtCs1bonBNpMvFl_18rustc_query_system9dep_graph5graph12DepNodeIndexEEE1
  46: RINvMs6_NtCs8UpmKsNDoY5_9hashbrown3rawINtB6_8RawTableTTNtNtNtCs2vqUEYxsi4E_12rustc_middle2ty8instance8InstanceNtNtNtBX_3mir4mono14CollectionModeETINtNtNtBX_5query5erase6ErasedAhj20_ENtNtNtCs1bonBNpMvFl_18rustc_query_system9dep_graph5graph12DepNodeIndexEEE1
  47: RINvNtNtCs1bonBNpMvFl_18rustc_query_system5query8plumbing15ensure_must_runINtCs5uFTMav0Vyp_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheNtNtCslRMtD7Kp4gh_10rustc_span6def_id13LocalModDefIdINtNtNtCs2vqUEYxsi4E_12rustc_middle5query5erase6Era
  48: rustc_query_impl::query_system
  49: rustc_hir_analysis::check_crate
  50: <rustc_interface::passes::LintStoreExpandImpl as rustc_expand::base::LintStoreExpand>::pre_expansion_lint
  51: rustc_interface::passes::analysis
  52: <alloc::sync::Arc<rustc_session::cstore::CrateSource>>::drop_slow
  53: RINvNtNtCs1bonBNpMvFl_18rustc_query_system5query8plumbing17try_execute_queryINtCs5uFTMav0Vyp_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs2vqUEYxsi4E_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
  54: rustc_query_impl::query_system
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: please attach the file at `H:\work\my\trash\rust-mini\req\rustc-ice-2025-05-08T11_30_07-20116.txt` to your bug report

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 `dns::resolve::DynResolver: hyper_util::client::legacy::connect::dns::sealed::Resolve`
#1 [typeck] type-checking `connect::<impl at vendor\reqwest\src\connect.rs:199:1: 199:22>::connect_with_maybe_proxy`
#2 [analysis] running analysis passes on this crate
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 type_of_opaque(reqwest[4048]::connect::{impl#2}::connect_with_maybe_proxy::{opaque#0})
#1 type_of(reqwest[4048]::connect::{impl#2}::connect_with_maybe_proxy::{opaque#0})
#2 check_well_formed(reqwest[4048]::connect::{impl#2}::connect_with_maybe_proxy::{opaque#0})
#3 check_mod_type_wf(reqwest[4048]::connect)
end of try_mark_green dep node stack

Other issues with the same EvaluatedToAmbig: #127432 #127051 , although we probably can't know whether this one is an exact duplicate...

@rustbot label: +A-incr-comp

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

Reproduce the failure from the rust-mini-things repository using branch unstable-eval-ambig and commits 5efe9ae and 9e4910c, then compare the two cargo build results. Start with incremental compilation and the evaluate_obligation query in the rustc_query_system stack; done means the reproducer no longer triggers the unstable-fingerprint ICE and the relevant compiler behavior is covered by a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.