Skip to content

incremental compilation error with evaluate_obligation when building substrate #88910

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
imlvts opened this issue Sep 13, 2021 · 2 comments · Fixed by #88945
Closed

incremental compilation error with evaluate_obligation when building substrate #88910

imlvts opened this issue Sep 13, 2021 · 2 comments · Fixed by #88945
Labels
A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@imlvts
Copy link

imlvts commented Sep 13, 2021

When building https://github.com/substrate-developer-hub/substrate-node-template , I've attempted to use the nightly version of Rust to speed up builds by using incremental compilation. Instead, I've encountered an ICE that suggested to create an issue.

Unfortunately, I was not able to minimize the error. I will try to minimize it, but the attempts to do so are hampered by extremely long build times. Which is why I would like to use incremental compilation in the first place.

Any directions on how to minimize the error are appreciated.

Code

These are the commands that can be used to reproduce the error:

# assuming debian/ubuntu, required dependencies
$ sudo apt install -y cmake pkg-config libssl-dev git build-essential clang libclang-dev curl
$ rustup target add wasm32-unknown-unknown --toolchain nightly
# at the moment of writing this issue, commit https://github.com/substrate-developer-hub/substrate-node-template/commit/3b547c94a23c5ff56b6773078215436c95c44ca0 was the latest
$ git clone https://github.com/substrate-developer-hub/substrate-node-template.git
$ cd substrate-node-template
$ cargo +nightly build
# -- wait 5 minutes --
$ touch runtime/src/lib.rs
$ RUST_BACKTRACE=1 cargo +nightly build

Meta

rustc --version --verbose:

rustc 1.57.0-nightly (51e514c0f 2021-09-12)
binary: rustc
commit-hash: 51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8
commit-date: 2021-09-12
host: x86_64-unknown-linux-gnu
release: 1.57.0-nightly
LLVM version: 13.0.0

Error output

error: internal compiler error: encountered incremental compilation error with evaluate_obligation(656c2f434dba2d88-7e463fb72c1233f7)
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p node_template` 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

thread 'rustc' panicked at 'Found unstable fingerprints for evaluate_obligation(656c2f434dba2d88-7e463fb72c1233f7): Ok(EvaluatedToOkModuloRegions)', /rustc/51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8/compiler/rustc_query_system/src/query/plumbing.rs:632:13
Backtrace

   0: rust_begin_unwind
             at /rustc/51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8/library/std/src/panicking.rs:517:5
   1: std::panicking::begin_panic_fmt
             at /rustc/51e514c0fb4f9afcaae3b02dd9ccb93e15b30ef8/library/std/src/panicking.rs:460:5
   2: rustc_query_system::query::plumbing::incremental_verify_ich
   3: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
   4: rustc_query_system::query::plumbing::get_query
   5: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::evaluate_obligation
   6: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
   7: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
   8: rustc_trait_selection::traits::fulfill::FulfillProcessor::process_trait_obligation
   9: rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations
  10: rustc_data_structures::obligation_forest::ObligationForest<O>::process_obligations
  11: rustc_trait_selection::traits::fulfill::FulfillmentContext::select
  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_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  16: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
  17: rustc_query_system::query::plumbing::get_query
  18: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::normalize_projection_ty
  19: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
  20: rustc_middle::ty::subst::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>>::super_fold_with
  21: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
  22: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
  23: rustc_middle::ty::subst::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>>::super_fold_with
  24: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
  25: <rustc_trait_selection::traits::query::normalize::QueryNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_ty
  26: <rustc_infer::infer::at::At as rustc_trait_selection::traits::query::normalize::AtExt>::normalize
  27: rustc_infer::infer::InferCtxtBuilder::enter
  28: core::ops::function::FnOnce::call_once
  29: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  30: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
  31: rustc_query_system::query::plumbing::get_query
  32: rustc_middle::ty::normalize_erasing_regions::NormalizeAfterErasingRegionsFolder::normalize_generic_arg_after_erasing_regions
  33: <rustc_middle::ty::normalize_erasing_regions::NormalizeAfterErasingRegionsFolder as rustc_middle::ty::fold::TypeFolder>::fold_ty
  34: <rustc_monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
  35: rustc_monomorphize::collector::collect_neighbours
  36: rustc_monomorphize::collector::collect_items_rec
  37: rustc_monomorphize::collector::collect_items_rec
  38: rustc_monomorphize::collector::collect_items_rec
  39: rustc_monomorphize::collector::collect_items_rec
  40: rustc_monomorphize::collector::collect_items_rec
  41: rustc_monomorphize::collector::collect_items_rec
  42: rustc_session::utils::<impl rustc_session::session::Session>::time
  43: rustc_monomorphize::collector::collect_crate_mono_items
  44: rustc_monomorphize::partitioning::collect_and_partition_mono_items
  45: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  46: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
  47: rustc_data_structures::stack::ensure_sufficient_stack
  48: rustc_query_system::query::plumbing::try_execute_query
  49: rustc_query_system::query::plumbing::force_query_impl
  50: rustc_query_system::query::plumbing::force_query
  51: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
  52: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory
  53: rustc_query_system::query::plumbing::try_execute_query
  54: rustc_query_system::query::plumbing::get_query
  55: rustc_metadata::rmeta::encoder::EncodeContext::encode_crate_root
  56: rustc_metadata::rmeta::encoder::encode_metadata_impl
  57: rustc_data_structures::sync::join
  58: rustc_metadata::rmeta::decoder::cstore_impl::<impl rustc_middle::middle::cstore::CrateStore for rustc_metadata::creader::CStore>::encode_metadata
  59: rustc_middle::ty::context::TyCtxt::encode_metadata
  60: rustc_interface::queries::Queries::ongoing_codegen
  61: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  62: rustc_span::with_source_map
  63: 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.57.0-nightly (51e514c0f 2021-09-12) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden
Query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>: std::marker::Sized`
#1 [normalize_projection_ty] normalizing `Canonical { max_universe: U0, variables: [], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: ProjectionTy { substs: [sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>], item_def_id: DefId(171:128 ~ futures_core[bda1]::stream::TryStream::Ok) } } }`
#2 [normalize_generic_arg_after_erasing_regions] normalizing `fn(jsonrpc_core::futures::stream::MapErr<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>, fn(sc_finality_grandpa::Error) -> sc_finality_grandpa::CommandOrError<sp_core::H256, u32> {<sc_finality_grandpa::CommandOrError<sp_core::H256, u32> as std::convert::From<sc_finality_grandpa::Error>>::from}>) -> jsonrpc_core::futures::stream::MapErr<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>, fn(sc_finality_grandpa::Error) -> sc_finality_grandpa::CommandOrError<sp_core::H256, u32> {<sc_finality_grandpa::CommandOrError<sp_core::H256, u32> as std::convert::From<sc_finality_grandpa::Error>>::from}> {jsonrpc_core::futures::stream::assert_stream::<sc_service::Result<<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>> as jsonrpc_core::futures::TryStream>::Ok, sc_finality_grandpa::CommandOrError<sp_core::H256, u32>>, jsonrpc_core::futures::stream::MapErr<sc_finality_grandpa::until_imported::UntilImported<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_service::client::client::Client<sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_service::LocalCallExecutor<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_client_db::Backend<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>, sc_executor::NativeElseWasmExecutor<service::ExecutorDispatch>>, sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, node_template_runtime::RuntimeApi>>, sc_finality_grandpa::communication::NetworkBridge<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sc_service::Arc<sc_network::service::NetworkService<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>, sp_core::H256>>>, jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::stream::FilterMap<jsonrpc_core::futures::futures_channel::mpsc::Receiver<sc_network_gossip::state_machine::TopicNotification>, jsonrpc_core::futures::future::Ready<std::option::Option<(sc_network_gossip::state_machine::TopicNotification, sc_finality_grandpa::communication::gossip::GossipMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>)>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#2}]>, jsonrpc_core::futures::future::Ready<std::option::Option<finality_grandpa::voter::CommunicationIn<sp_core::H256, u32, sp_finality_grandpa::app::Signature, sp_finality_grandpa::app::Public>>>, [closure@sc_finality_grandpa::communication::incoming_global<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>::{closure#3}]>, sc_finality_grandpa::until_imported::BlockGlobalMessage<sp_runtime::generic::Block<sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>, sp_runtime::OpaqueExtrinsic>>>, fn(sc_finality_grandpa::Error) -> sc_finality_grandpa::CommandOrError<sp_core::H256, u32> {<sc_finality_grandpa::CommandOrError<sp_core::H256, u32> as std::convert::From<sc_finality_grandpa::Error>>::from}>>}`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_symbols] exported_symbols
end of query stack
@imlvts imlvts added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 13, 2021
@camelid camelid added the A-incr-comp Area: Incremental compilation label Sep 13, 2021
@Aaron1011
Copy link
Member

@imlvts Thank you for the detailed reproduction instructions! I'm able to reproduce this on the latest nightly, as well as with a local stage1 compiler.

@jackh726
Copy link
Member

Is this a beta regression?

bors added a commit to rust-lang-ci/rust that referenced this issue Sep 17, 2021
…=wesleywiser,jackh726

Remove concept of 'completion' from the projection cache

Fixes rust-lang#88910

When we initially store a `NormalizedTy` in the projection cache,
we discard all obligations that we can (while ensuring that we
don't cause any issues with incremental compilation).

Marking a projection cache entry as 'completed' discards all
obligations associated with it. This can only cause problems,
since any obligations stored in the cache are there for a reason
(e.g. they evaluate to `EvaluatedToOkModuloRegions`).

This commit removes `complete` and `complete_normalized` entirely.
@bors bors closed this as completed in 055651d Sep 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants