rust-lang / rust · Issue No. 163124
I don't have a minimal reproducer yet, but I have a branch where I can repro the ICE consistently.
git clone https://gitlab.torproject.org/gabi-250/arti.git -b ice-min-g2
cd arti
git checkout HEAD^
cargo check --all-features
git checkout -
cargo check --all-features
The second cargo check --all-features triggers the ICE.
It reproduces consistently on rustc 1.97.1.
rustc --version --verbose:
rustc 1.97.1 (8bab26f4f 2026-07-14)
binary: rustc
commit-hash: 8bab26f4f68e0e26f0bb7960be334d5b520ea452
commit-date: 2026-07-14
host: x86_64-unknown-linux-gnu
release: 1.97.1
LLVM version: 22.1.6
It doesn't reproduce on nightly, so I suppose it's possible this was already fixed (but I figured I'd file an issue just in case)
rustc 1.100.0-nightly (bba531001 2026-09-20)
binary: rustc
commit-hash: bba531001d4de6d7f49693e0836a2668ca063282
commit-date: 2026-09-20
host: x86_64-unknown-linux-gnu
release: 1.100.0-nightly
LLVM version: 23.1.1
Using 1.97.1:
error[E0425]: cannot find type `FromUtf8Error` in module `std::str`
--> crates/arti-relay/src/stream/dns/resolver/err.rs:12:31
|
12 | InvalidHostname(std::str::FromUtf8Error),
| ^^^^^^^^^^^^^
|
--> /rustc/8bab26f4f68e0e26f0bb7960be334d5b520ea452/library/core/src/str/error.rs:47:0
|
= note: similarly named struct `Utf8Error` defined here
help: a struct with a similar name exists
|
12 - InvalidHostname(std::str::FromUtf8Error),
12 + InvalidHostname(std::str::Utf8Error),
|
help: consider importing this struct
|
3 + use std::string::FromUtf8Error;
|
help: if you import `FromUtf8Error`, refer to it directly
|
12 - InvalidHostname(std::str::FromUtf8Error),
12 + InvalidHostname(FromUtf8Error),
|
warning: unused imports: `LookupAnswers` and `LookupError`
--> crates/arti-relay/src/stream/dns.rs:5:29
|
5 | use resolver::{DnsResolver, LookupAnswers, LookupError};
| ^^^^^^^^^^^^^ ^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
error: internal compiler error: encountered incremental compilation error with evaluate_obligation(939cab13c00586cf-1d23fe1e6676f246)
|
= 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 arti_relay` or `cargo clean` to allow your project to compile
thread 'rustc' (273233) panicked at /rustc-dev/8bab26f4f68e0e26f0bb7960be334d5b520ea452/compiler/rustc_middle/src/verify_ich.rs:82:9:
Found unstable fingerprints for evaluate_obligation(939cab13c00586cf-1d23fe1e6676f246): Ok(EvaluatedToOk)
stack backtrace:
0: 0x7f5af06901f9 - <<std[1e3c4ec04c5261a9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[37f591cfbe66b0b1]::fmt::Display>::fmt
1: 0x7f5af0e20cc8 - core[37f591cfbe66b0b1]::fmt::write
2: 0x7f5af220d936 - <std[1e3c4ec04c5261a9]::sys::stdio::unix::Stderr as std[1e3c4ec04c5261a9]::io::Write>::write_fmt
3: 0x7f5af06663fe - std[1e3c4ec04c5261a9]::panicking::default_hook::{closure#0}
4: 0x7f5af0683b33 - std[1e3c4ec04c5261a9]::panicking::default_hook
5: 0x7f5aef476c31 - std[1e3c4ec04c5261a9]::panicking::update_hook::<alloc[24b8200b0946867]::boxed::Box<rustc_driver_impl[4e5b0da0f4005eeb]::install_ice_hook::{closure#1}>>::{closure#0}
6: 0x7f5af0683e12 - std[1e3c4ec04c5261a9]::panicking::panic_with_hook
7: 0x7f5af06664c2 - std[1e3c4ec04c5261a9]::panicking::panic_handler::{closure#0}
8: 0x7f5af065a9a9 - std[1e3c4ec04c5261a9]::sys::backtrace::__rust_end_short_backtrace::<std[1e3c4ec04c5261a9]::panicking::panic_handler::{closure#0}, !>
9: 0x7f5af0667f2d - __rustc[6ef78fba13ac776c]::rust_begin_unwind
10: 0x7f5aed1192dc - core[37f591cfbe66b0b1]::panicking::panic_fmt
11: 0x7f5aefb71e27 - rustc_middle[8a940fbd8c5d50e6]::verify_ich::incremental_verify_ich_failed
12: 0x7f5af159eeda - rustc_middle[8a940fbd8c5d50e6]::verify_ich::incremental_verify_ich::<rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 2usize]>>
13: 0x7f5af1c56adc - rustc_query_impl[bdb42d22f02e134a]::execution::try_execute_query::<rustc_middle[8a940fbd8c5d50e6]::query::caches::DefaultCache<rustc_type_ir[f110db280fa5959f]::canonical::CanonicalQueryInput<rustc_middle[8a940fbd8c5d50e6]::ty::context::TyCtxt, rustc_middle[8a940fbd8c5d50e6]::ty::ParamEnvAnd<rustc_middle[8a940fbd8c5d50e6]::ty::predicate::Predicate>>, rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 2usize]>>, true>
14: 0x7f5af1c55182 - rustc_query_impl[bdb42d22f02e134a]::query_impl::evaluate_obligation::execute_query_incr::__rust_end_short_backtrace
15: 0x7f5af140c5a0 - <rustc_trait_selection[c5d69b98270b4c69]::traits::fulfill::FulfillProcessor as rustc_data_structures[6314a90323e5c320]::obligation_forest::ObligationProcessor>::process_obligation
16: 0x7f5af0e05d95 - <rustc_data_structures[6314a90323e5c320]::obligation_forest::ObligationForest<rustc_trait_selection[c5d69b98270b4c69]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[c5d69b98270b4c69]::traits::fulfill::FulfillProcessor>
17: 0x7f5af16cb979 - rustc_hir_analysis[1956eea595525479]::check::check::check_coroutine_obligations
18: 0x7f5af16cb2d9 - rustc_query_impl[bdb42d22f02e134a]::query_impl::check_coroutine_obligations::invoke_provider_fn::__rust_begin_short_backtrace
19: 0x7f5af104cf3f - rustc_query_impl[bdb42d22f02e134a]::execution::try_execute_query::<rustc_data_structures[6314a90323e5c320]::vec_cache::VecCache<rustc_span[d86c6dd34b0962f8]::def_id::LocalDefId, rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepNodeIndex>, true>
20: 0x7f5af1f81911 - rustc_query_impl[bdb42d22f02e134a]::execution::force_query_dep_node::<rustc_data_structures[6314a90323e5c320]::vec_cache::VecCache<rustc_span[d86c6dd34b0962f8]::def_id::LocalDefId, rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepNodeIndex>>
21: 0x7f5af00b13ed - <rustc_query_impl[bdb42d22f02e134a]::dep_kind_vtables::make_dep_kind_vtable_for_query<rustc_query_impl[bdb42d22f02e134a]::query_impl::check_coroutine_obligations::VTableGetter>::{closure#0} as core[37f591cfbe66b0b1]::ops::function::FnOnce<(rustc_middle[8a940fbd8c5d50e6]::ty::context::TyCtxt, rustc_middle[8a940fbd8c5d50e6]::dep_graph::dep_node::DepNode, rustc_middle[8a940fbd8c5d50e6]::dep_graph::serialized::SerializedDepNodeIndex)>>::call_once
22: 0x7f5af1044b66 - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
23: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
24: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
25: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
26: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
27: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
28: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
29: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
30: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
31: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
32: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
33: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
34: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
35: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
36: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
37: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
38: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
39: 0x7f5af1044acf - <rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepGraphData>::try_mark_previous_green
40: 0x7f5af25528cc - rustc_query_impl[bdb42d22f02e134a]::execution::ensure_can_skip_execution::<rustc_data_structures[6314a90323e5c320]::vec_cache::VecCache<rustc_span[d86c6dd34b0962f8]::def_id::LocalDefId, rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[8a940fbd8c5d50e6]::dep_graph::graph::DepNodeIndex>>.warm
41: 0x7f5af104c95b - rustc_query_impl[bdb42d22f02e134a]::query_impl::check_well_formed::execute_query_incr::__rust_end_short_backtrace
42: 0x7f5af15bdca6 - rustc_hir_analysis[1956eea595525479]::check::wfcheck::check_type_wf
43: 0x7f5af15bdb39 - rustc_query_impl[bdb42d22f02e134a]::query_impl::check_type_wf::invoke_provider_fn::__rust_begin_short_backtrace
44: 0x7f5af21e80f1 - rustc_query_impl[bdb42d22f02e134a]::execution::try_execute_query::<rustc_middle[8a940fbd8c5d50e6]::query::caches::SingleCache<rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 1usize]>>, true>
45: 0x7f5af21e790b - rustc_query_impl[bdb42d22f02e134a]::query_impl::check_type_wf::execute_query_incr::__rust_end_short_backtrace
46: 0x7f5af10bb469 - rustc_hir_analysis[1956eea595525479]::check_crate
47: 0x7f5af10b6e33 - rustc_interface[6818d3a8678689ee]::passes::analysis
48: 0x7f5af1f66c35 - rustc_query_impl[bdb42d22f02e134a]::execution::try_execute_query::<rustc_middle[8a940fbd8c5d50e6]::query::caches::SingleCache<rustc_middle[8a940fbd8c5d50e6]::query::erase::ErasedData<[u8; 0usize]>>, true>
49: 0x7f5af1f665ea - rustc_query_impl[bdb42d22f02e134a]::query_impl::analysis::execute_query_incr::__rust_end_short_backtrace
50: 0x7f5af1f26f1b - rustc_interface[6818d3a8678689ee]::interface::run_compiler::<(), rustc_driver_impl[4e5b0da0f4005eeb]::run_compiler::{closure#0}>::{closure#1}
51: 0x7f5af1f5407a - std[1e3c4ec04c5261a9]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[6818d3a8678689ee]::util::run_in_thread_with_globals<rustc_interface[6818d3a8678689ee]::util::run_in_thread_pool_with_globals<rustc_interface[6818d3a8678689ee]::interface::run_compiler<(), rustc_driver_impl[4e5b0da0f4005eeb]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
52: 0x7f5af1f5476d - <std[1e3c4ec04c5261a9]::thread::lifecycle::spawn_unchecked<rustc_interface[6818d3a8678689ee]::util::run_in_thread_with_globals<rustc_interface[6818d3a8678689ee]::util::run_in_thread_pool_with_globals<rustc_interface[6818d3a8678689ee]::interface::run_compiler<(), rustc_driver_impl[4e5b0da0f4005eeb]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[37f591cfbe66b0b1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
53: 0x7f5af1f5556c - <std[1e3c4ec04c5261a9]::sys::thread::unix::Thread>::new::thread_start
54: 0x7f5aeb4980a2 - <unknown>
55: 0x7f5aeb52080c - <unknown>
56: 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.97.1 (8bab26f4f 2026-07-14) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type bin -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 `alloc::boxed::Box<hickory_proto::error::ProtoError>: core::marker::Send`
#1 [check_coroutine_obligations] verify auto trait bounds for coroutine interior type `stream::handle_circuit_incoming_streams`
... and 2 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 mir_borrowck(arti_relay[adc4]::stream::handle_circuit_incoming_streams)
#1 type_of_opaque(arti_relay[adc4]::stream::handle_circuit_incoming_streams::{opaque#0})
#2 typeck_root(arti_relay[adc4]::stream::handle_incoming_streams)
#3 check_match(arti_relay[adc4]::stream::handle_incoming_streams)
#4 mir_built(arti_relay[adc4]::stream::handle_incoming_streams)
#5 has_ffi_unwind_calls(arti_relay[adc4]::stream::handle_incoming_streams)
#6 mir_promoted(arti_relay[adc4]::stream::handle_incoming_streams)
#7 mir_borrowck(arti_relay[adc4]::stream::handle_incoming_streams)
#8 type_of_opaque(arti_relay[adc4]::stream::handle_incoming_streams::{opaque#0})
#9 typeck_root(arti_relay[adc4]::relay::{impl#1}::run)
#10 check_match(arti_relay[adc4]::relay::{impl#1}::run)
#11 mir_built(arti_relay[adc4]::relay::{impl#1}::run)
#12 has_ffi_unwind_calls(arti_relay[adc4]::relay::{impl#1}::run)
#13 mir_promoted(arti_relay[adc4]::relay::{impl#1}::run)
#14 mir_borrowck(arti_relay[adc4]::relay::{impl#1}::run)
#15 type_of_opaque(arti_relay[adc4]::relay::{impl#1}::run::{opaque#0})
#16 type_of(arti_relay[adc4]::relay::{impl#1}::run::{opaque#0})
#17 check_well_formed(arti_relay[adc4]::relay::{impl#1}::run::{opaque#0})
end of try_mark_green dep node stack
For more information about this error, try `rustc --explain E0425`.
warning: `arti-relay` (bin "arti-relay") generated 1 warning
error: could not compile `arti-relay` (bin "arti-relay") due to 2 previous errors; 1 warning emitted
Backtrace
<backtrace>
Relay reads this issue against the repository's contribution signals: the files it is likely to touch, how the maintainers triage work this size, and what the first contribution would exercise.
The full analysis for this issue is still being assembled. Until then, the description above and the thread on GitHub are the most reliable context.