-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Closed
Labels
A-incr-compArea: Incremental compilationArea: Incremental compilationC-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Milestone
Description
Apologies as this is the most minimal example I've been able to produce; working on finding a better one that doesn't use the kube-rs
crate.
Steps to reproduce:
cargo clean
cargo run
touch src/main.rs
cargo run
The second cargo run
will give ICE.
Code
use anyhow::Result;
use k8s_openapi::api::core::v1::Node;
use kube::api::{Api, ListParams};
use kube::Client;
#[tokio::main]
async fn main() -> Result<()> {
let client = Client::try_default().await?;
let api = Api::<Node>::all(client);
let params = ListParams::default();
let _ = api.list(¶ms).await?;
Ok(())
}
[package]
name = "scratch-paper-2"
version = "0.1.0"
authors = []
edition = "2018"
[dependencies]
anyhow = "1.0"
k8s-openapi = { version = "0.11.0", default-features = false, features = ["v1_19"] }
kube = "0.52"
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"] }
Meta
rustc --version --verbose
:
rustc 1.52.0 (88f19c6da 2021-05-03)
binary: rustc
commit-hash: 88f19c6dab716c6281af7602e30f413e809c5974
commit-date: 2021-05-03
host: x86_64-apple-darwin
release: 1.52.0
LLVM version: 12.0.0
Error output
thread 'rustc' panicked at 'found unstable fingerprints for evaluate_obligation(cd911fb1c8b690c0-4d0c87f154e202fd): Ok(EvaluatedToOk)', /rustc/88f19c6dab716c6281af7602e30f413e809c5974/compiler/rustc_query_system/src/query/plumbing.rs:593:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: internal compiler error: unexpected panic
note: 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.52.0 (88f19c6da 2021-05-03) running on x86_64-apple-darwin
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `std::boxed::Box<dyn std::error::Error + std::marker::Send + std::marker::Sync>: std::convert::Into<std::boxed::Box<dyn std::error::Error + std::marker::Send + std::marker::Sync>>`
#1 [normalize_projection_ty] normalizing `Canonical { max_universe: U0, variables: [], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: ProjectionTy { substs: [&mut kube::Service, http::request::Request<hyper::body::body::Body>], item_def_id: DefId(69:16 ~ tower_service[ac0f]::Service::Error) } } }`
end of query stack
error: could not compile `scratch-paper-2`
Backtrace
thread 'rustc' panicked at 'found unstable fingerprints for evaluate_obligation(cd911fb1c8b690c0-4d0c87f154e202fd): Ok(EvaluatedToOk)', /rustc/88f19c6dab716c6281af7602e30f413e809c5974/compiler/rustc_query_system/src/query/plumbing.rs:593:5
stack backtrace:
0: _rust_begin_unwind
1: std::panicking::begin_panic_fmt
2: rustc_query_system::query::plumbing::incremental_verify_ich
3: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory
4: rustc_data_structures::stack::ensure_sufficient_stack
5: rustc_query_system::query::plumbing::get_query_impl
6: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::evaluate_obligation
7: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
8: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
9: rustc_trait_selection::traits::fulfill::FulfillProcessor::process_trait_obligation
10: rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations
11: rustc_data_structures::obligation_forest::ObligationForest<O>::process_obligations
12: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
13: <rustc_infer::infer::InferCtxtBuilder as rustc_trait_selection::infer::InferCtxtBuilderExt>::enter_canonical_trait_query
14: rustc_traits::normalize_projection_ty::normalize_projection_ty
15: rustc_query_impl::<impl rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt> for rustc_query_impl::queries::normalize_projection_ty>::compute
16: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
17: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory
18: rustc_data_structures::stack::ensure_sufficient_stack
19: rustc_query_system::query::plumbing::get_query_impl
20: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::normalize_projection_ty
21: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
22: rustc_middle::ty::fold::TypeFoldable::fold_with
23: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
24: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
25: rustc_middle::ty::fold::TypeFoldable::fold_with
26: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
27: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
28: <rustc_infer::infer::at::At as rustc_trait_selection::traits::query::normalize::AtExt>::normalize
29: rustc_infer::infer::InferCtxtBuilder::enter
30: rustc_traits::normalize_erasing_regions::normalize_generic_arg_after_erasing_regions
31: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
32: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory
33: rustc_data_structures::stack::ensure_sufficient_stack
34: rustc_query_system::query::plumbing::get_query_impl
35: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::normalize_generic_arg_after_erasing_regions
36: <rustc_middle::ty::normalize_erasing_regions::NormalizeAfterErasingRegionsFolder as rustc_middle::ty::fold::TypeFolder>::fold_ty
37: rustc_middle::ty::instance::Instance::subst_mir_and_normalize_erasing_regions
38: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
39: rustc_mir::monomorphize::collector::collect_neighbours
40: rustc_mir::monomorphize::collector::collect_items_rec
41: rustc_mir::monomorphize::collector::collect_items_rec
42: rustc_mir::monomorphize::collector::collect_items_rec
43: rustc_mir::monomorphize::collector::collect_items_rec
44: rustc_mir::monomorphize::collector::collect_items_rec
45: rustc_mir::monomorphize::collector::collect_items_rec
46: rustc_mir::monomorphize::collector::collect_items_rec
47: rustc_mir::monomorphize::collector::collect_items_rec
48: rustc_mir::monomorphize::collector::collect_items_rec
49: rustc_mir::monomorphize::collector::collect_items_rec
50: rustc_mir::monomorphize::collector::collect_items_rec
51: rustc_mir::monomorphize::collector::collect_items_rec
52: rustc_mir::monomorphize::collector::collect_items_rec
53: rustc_mir::monomorphize::collector::collect_items_rec
54: rustc_mir::monomorphize::collector::collect_items_rec
55: rustc_mir::monomorphize::collector::collect_items_rec
56: rustc_mir::monomorphize::collector::collect_items_rec
57: rustc_mir::monomorphize::collector::collect_items_rec
58: rustc_mir::monomorphize::collector::collect_items_rec
59: rustc_mir::monomorphize::collector::collect_items_rec
60: rustc_mir::monomorphize::collector::collect_items_rec
61: rustc_mir::monomorphize::collector::collect_items_rec
62: rustc_mir::monomorphize::collector::collect_items_rec
63: rustc_mir::monomorphize::collector::collect_items_rec
64: rustc_mir::monomorphize::collector::collect_items_rec
65: rustc_mir::monomorphize::collector::collect_items_rec
66: rustc_mir::monomorphize::collector::collect_crate_mono_items
67: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items
68: rustc_query_impl::<impl rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt> for rustc_query_impl::queries::collect_and_partition_mono_items>::compute
69: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
70: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
71: rustc_data_structures::stack::ensure_sufficient_stack
72: rustc_query_system::query::plumbing::force_query_with_job
73: rustc_query_system::query::plumbing::get_query_impl
74: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::collect_and_partition_mono_items
75: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
76: rustc_interface::passes::QueryContext::enter
77: rustc_interface::queries::Queries::ongoing_codegen
78: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
79: rustc_span::with_source_map
80: rustc_interface::interface::create_compiler_and_run
81: scoped_tls::ScopedKey<T>::set
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: internal compiler error: unexpected panic
note: 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.52.0 (88f19c6da 2021-05-03) running on x86_64-apple-darwin
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `std::boxed::Box<dyn std::error::Error + std::marker::Send + std::marker::Sync>: std::convert::Into<std::boxed::Box<dyn std::error::Error + std::marker::Send + std::marker::Sync>>`
#1 [normalize_projection_ty] normalizing `Canonical { max_universe: U0, variables: [], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: ProjectionTy { substs: [&mut kube::Service, http::request::Request<hyper::body::body::Body>], item_def_id: DefId(69:16 ~ tower_service[ac0f]::Service::Error) } } }`
#2 [normalize_generic_arg_after_erasing_regions] normalizing `fn(std::result::Result<(), <&mut kube::Service as tower_service::Service<http::request::Request<hyper::body::body::Body>>>::Error>) -> std::result::Result<<std::result::Result<(), <&mut kube::Service as tower_service::Service<http::request::Request<hyper::body::body::Body>>>::Error> as std::ops::Try>::Ok, <std::result::Result<(), <&mut kube::Service as tower_service::Service<http::request::Request<hyper::body::body::Body>>>::Error> as std::ops::Try>::Error> {<std::result::Result<(), <&mut kube::Service as tower_service::Service<http::request::Request<hyper::body::body::Body>>>::Error> as std::ops::Try>::into_result}`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
error: could not compile `scratch-paper-2`
EDIT1: Thanks @Jake-Shadle for pointing out the issue is unrelated to rust-analyzer
; any file change after the first cargo run
will cause the issue.
leoyvens and chetankhilosiya
Metadata
Metadata
Assignees
Labels
A-incr-compArea: Incremental compilationArea: Incremental compilationC-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.