rust-lang / rust-lang/rust-clippy
encountered incremental compilation error with evaluate_obligation(d87a56c5dc6db6e-e9735b6f63d47303)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
Summary
Encountered the following while working on a very large local change. It is reproducible in the sense that applying the following change triggers the crash and backing out the change avoids it:
impl Channel {
- async fn exchange<Out: Send + 'static, In: Send + 'static, P>(
+ async fn exchange<Out: Send + 'static, In: Send + 'static, P: Into<Request>>(
&self,
outbound: Out,
make_request: impl FnOnce(Out, Reply<In>) -> P,
- ) -> DeltaResult<In>
- where
- P: Into<Request>,
- {
+ ) -> DeltaResult<In> {
self.0
.request(|reply| make_request(outbound, reply).into())
.await
}
}
I've got an AI agent trying to minimize the repro in a separate worktree so I can keep coding. I'll post back here if they get something shareable.
Version
clippy 0.1.94 (4a4ef493e3 2026-03-02)
Error output
Backtrace
-*- mode: compilation; default-directory: "~/duckdb_delta/delta-kernel-rs/.worktrees/kernel-coroutines/" -*-
Compilation started at Wed Sep 16 13:33:01
cd ~/duckdb_delta/delta-kernel-rs/.worktrees/kernel-coroutines/ && cargo clippy --workspace --all-features --tests --benches
Blocking waiting for file lock on build directory
Checking delta_kernel v0.28.0 (/Users/ryan.johnson/duckdb_delta/delta-kernel-rs/.worktrees/kernel-coroutines/kernel)
error: internal compiler error: encountered incremental compilation error with evaluate_obligation(d87a56c5dc6db6e-e9735b6f63d47303)
|
= 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 delta_kernel` or `cargo clean` to allow your project to compile
thread 'rustc' (74258840) panicked at /rustc-dev/4a4ef493e3a1488c6e321570238084b38948f6db/compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for evaluate_obligation(d87a56c5dc6db6e-e9735b6f63d47303): Ok(EvaluatedToOkModuloRegions)
stack backtrace:
0: 0x114147634 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hcde33371d8bba08b
1: 0x1113981fc - core::fmt::write::h8a52dffc4df6d016
2: 0x114101260 - std::io::Write::write_fmt::h2fd0abc6933d662d
3: 0x114119ea4 - std::panicking::default_hook::{{closure}}::h1af7615be47c43ab
4: 0x114119dac - std::panicking::default_hook::hdcc779fdbf67ae29
5: 0x111fe3378 - std[b190ad38c85ed59a]::panicking::update_hook::<alloc[cec09d4d3689febe]::boxed::Box<rustc_driver_impl[185e3967a9919f9d]::install_ice_hook::{closure#1}>>::{closure#0}
6: 0x11411a2d0 - std::panicking::panic_with_hook::h455d3ea9bab4bcbd
7: 0x114119f4c - std::panicking::panic_handler::{{closure}}::h2068a0d88ec25e56
8: 0x1141139e4 - std::sys::backtrace::__rust_end_short_backtrace::h7bea34f9056001ee
9: 0x1140f764c - __rustc[4425a7e20b4c8619]::rust_begin_unwind
10: 0x116e7f120 - core::panicking::panic_fmt::hc9b4228954207328
11: 0x116f58380 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::incremental_verify_ich_failed::<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt>
12: 0x113619c6c - rustc_query_system[23a19f823f15ce6c]::query::plumbing::incremental_verify_ich::<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 2usize]>>
13: 0x1135c8348 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_query_system[23a19f823f15ce6c]::query::caches::DefaultCache<rustc_type_ir[2c11913eb1716827]::canonical::CanonicalQueryInput<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt, rustc_middle[1dd1fc2248f63b22]::ty::ParamEnvAnd<rustc_middle[1dd1fc2248f63b22]::ty::predicate::Predicate>>, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 2usize]>>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, true>
14: 0x1136ed634 - rustc_query_impl[def6bb11db1f9526]::query_impl::evaluate_obligation::get_query_incr::__rust_end_short_backtrace
15: 0x113e585e4 - <rustc_infer[6c4201f777a84977]::infer::InferCtxt as rustc_trait_selection[e1fbad59407fbe56]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
16: 0x113e589d0 - <rustc_infer[6c4201f777a84977]::infer::InferCtxt as rustc_trait_selection[e1fbad59407fbe56]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
17: 0x113dd37bc - <rustc_trait_selection[e1fbad59407fbe56]::traits::fulfill::FulfillProcessor>::process_trait_obligation
18: 0x113e744cc - <rustc_trait_selection[e1fbad59407fbe56]::traits::fulfill::FulfillProcessor as rustc_data_structures[fafc8b92dea7f144]::obligation_forest::ObligationProcessor>::process_obligation
19: 0x113c39a28 - <rustc_data_structures[fafc8b92dea7f144]::obligation_forest::ObligationForest<rustc_trait_selection[e1fbad59407fbe56]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[e1fbad59407fbe56]::traits::fulfill::FulfillProcessor>
20: 0x113e66acc - <rustc_trait_selection[e1fbad59407fbe56]::traits::fulfill::FulfillmentContext<rustc_infer[6c4201f777a84977]::traits::engine::ScrubbedTraitError> as rustc_infer[6c4201f777a84977]::traits::engine::TraitEngine<rustc_infer[6c4201f777a84977]::traits::engine::ScrubbedTraitError>>::try_evaluate_obligations
21: 0x113f01704 - <rustc_trait_selection[e1fbad59407fbe56]::traits::fulfill::FulfillmentContext<rustc_infer[6c4201f777a84977]::traits::engine::ScrubbedTraitError> as rustc_infer[6c4201f777a84977]::traits::engine::TraitEngine<rustc_infer[6c4201f777a84977]::traits::engine::ScrubbedTraitError>>::evaluate_obligations_error_on_ambiguity
22: 0x113f19294 - <rustc_trait_selection[e1fbad59407fbe56]::traits::engine::ObligationCtxt>::make_canonicalized_query_response::<()>
23: 0x113f8a714 - rustc_traits[1771b8103676f9bd]::type_op::type_op_prove_predicate
24: 0x1135816cc - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::type_op_prove_predicate::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>>
25: 0x11386e1cc - <rustc_query_impl[def6bb11db1f9526]::query_impl::type_op_prove_predicate::dynamic_query::{closure#2} as core[a936a58af82ee723]::ops::function::FnOnce<(rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt, rustc_type_ir[2c11913eb1716827]::canonical::CanonicalQueryInput<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt, rustc_middle[1dd1fc2248f63b22]::ty::ParamEnvAnd<rustc_middle[1dd1fc2248f63b22]::traits::query::type_op::ProvePredicate>>)>>::call_once
26: 0x1135cc4d4 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_query_system[23a19f823f15ce6c]::query::caches::DefaultCache<rustc_type_ir[2c11913eb1716827]::canonical::CanonicalQueryInput<rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt, rustc_middle[1dd1fc2248f63b22]::ty::ParamEnvAnd<rustc_middle[1dd1fc2248f63b22]::traits::query::type_op::ProvePredicate>>, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, true>
27: 0x1136fad90 - rustc_query_impl[def6bb11db1f9526]::query_impl::type_op_prove_predicate::get_query_incr::__rust_end_short_backtrace
28: 0x113e5973c - <rustc_middle[1dd1fc2248f63b22]::traits::query::type_op::ProvePredicate as rustc_trait_selection[e1fbad59407fbe56]::traits::query::type_op::QueryTypeOp>::perform_query
29: 0x1117fb6e0 - <rustc_borrowck[9cea798e70066837]::type_check::TypeChecker>::fully_perform_op::<(), rustc_middle[1dd1fc2248f63b22]::ty::ParamEnvAnd<rustc_middle[1dd1fc2248f63b22]::traits::query::type_op::ProvePredicate>>
30: 0x11194d1b4 - <rustc_borrowck[9cea798e70066837]::type_check::TypeChecker>::normalize_and_prove_instantiated_predicates
31: 0x111a2b130 - <rustc_borrowck[9cea798e70066837]::type_check::TypeChecker as rustc_middle[1dd1fc2248f63b22]::mir::visit::Visitor>::visit_const_operand
32: 0x111a25f4c - <rustc_borrowck[9cea798e70066837]::type_check::TypeChecker as rustc_middle[1dd1fc2248f63b22]::mir::visit::Visitor>::visit_operand
33: 0x111a27ba4 - <rustc_borrowck[9cea798e70066837]::type_check::TypeChecker as rustc_middle[1dd1fc2248f63b22]::mir::visit::Visitor>::visit_terminator
34: 0x111a218ac - <rustc_borrowck[9cea798e70066837]::type_check::TypeChecker as rustc_middle[1dd1fc2248f63b22]::mir::visit::Visitor>::visit_body
35: 0x1119cce64 - rustc_borrowck[9cea798e70066837]::type_check::type_check
36: 0x11193fa94 - <rustc_borrowck[9cea798e70066837]::root_cx::BorrowCheckRootCtxt>::do_mir_borrowck
37: 0x11192a6dc - rustc_borrowck[9cea798e70066837]::mir_borrowck
38: 0x11357d0a0 - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>>
39: 0x1136132f4 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_data_structures[fafc8b92dea7f144]::vec_cache::VecCache<rustc_span[40bc6320bb32000f]::def_id::LocalDefId, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[23a19f823f15ce6c]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, true>
40: 0x1136d8330 - rustc_query_impl[def6bb11db1f9526]::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
41: 0x11290c118 - <rustc_middle[1dd1fc2248f63b22]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_interface[8731d2cac67c9b74]::passes::run_required_analyses::{closure#1}::{closure#0}>::{closure#0}
42: 0x112954040 - rustc_interface[8731d2cac67c9b74]::passes::analysis
43: 0x113582e98 - rustc_query_impl[def6bb11db1f9526]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[def6bb11db1f9526]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 0usize]>>
44: 0x11359c5f4 - rustc_query_system[23a19f823f15ce6c]::query::plumbing::try_execute_query::<rustc_query_impl[def6bb11db1f9526]::DynamicConfig<rustc_query_system[23a19f823f15ce6c]::query::caches::SingleCache<rustc_middle[1dd1fc2248f63b22]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[def6bb11db1f9526]::plumbing::QueryCtxt, true>
45: 0x11370a298 - rustc_query_impl[def6bb11db1f9526]::query_impl::analysis::get_query_incr::__rust_end_short_backtrace
46: 0x111f96b40 - rustc_interface[8731d2cac67c9b74]::passes::create_and_enter_global_ctxt::<core[a936a58af82ee723]::option::Option<rustc_interface[8731d2cac67c9b74]::queries::Linker>, rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}::{closure#2}>
47: 0x111fe1a9c - rustc_interface[8731d2cac67c9b74]::interface::run_compiler::<(), rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}>::{closure#1}
48: 0x111fd7d9c - std[b190ad38c85ed59a]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_with_globals<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_pool_with_globals<rustc_interface[8731d2cac67c9b74]::interface::run_compiler<(), rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
49: 0x111fe8ff4 - <std[b190ad38c85ed59a]::thread::lifecycle::spawn_unchecked<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_with_globals<rustc_interface[8731d2cac67c9b74]::util::run_in_thread_pool_with_globals<rustc_interface[8731d2cac67c9b74]::interface::run_compiler<(), rustc_driver_impl[185e3967a9919f9d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[a936a58af82ee723]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
50: 0x114110530 - std::sys::thread::unix::Thread::new::thread_start::hb5c7d2a38fab9e31
51: 0x18eeb1c58 - __pthread_cond_wait
error: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml
note: rustc 1.94.0 (4a4ef493e 2026-03-02) running on aarch64-apple-darwin
note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked -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 `coroutine::kernel::workflow::WorkflowImpl<{async closure@kernel/src/checkpoint/mod.rs:384:31: 384:51}, checkpoint::CheckpointWriter>: coroutine::kernel::workflow::Workflow`
#1 [type_op_prove_predicate] evaluating `type_op_prove_predicate` `ProvePredicate { predicate: Binder { value: TraitPredicate(<coroutine::kernel::workflow::WorkflowImpl<{async closure@kernel/src/checkpoint/mod.rs:384:31: 384:51}, checkpoint::CheckpointWriter> as coroutine::kernel::workflow::Workflow>, polarity:Positive), bound_vars: [] } }`
... and 2 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
note: Clippy version: clippy 0.1.94 (4a4ef493e3 2026-03-02)
error: internal compiler error: reentrant incremental verify failure, suppressing message
error: could not compile `delta_kernel` (lib) due to 2 previous errors
Compilation exited abnormally with code 101 at Wed Sep 16 13:33:07
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
Reproduce with cargo clippy --workspace --all-features --tests --benches in the delta_kernel worktree, applying the shown Channel::exchange signature change before rebuilding incrementally. Start at the evaluate_obligation fingerprint failure in rustc_query_system/src/query/plumbing.rs:743; a useful result would be a minimized reproducer that distinguishes the triggering change and avoids the internal compiler error.
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
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100