Skip to content
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

Broken MIR: generator contains type &mut Body in MIR #93246

Closed
scuzzycheese opened this issue Jan 23, 2022 · 3 comments
Closed

Broken MIR: generator contains type &mut Body in MIR #93246

scuzzycheese opened this issue Jan 23, 2022 · 3 comments
Labels
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

@scuzzycheese
Copy link

rustc --version --verbose:

rustc 1.60.0-nightly (bfe156467 2022-01-22)
binary: rustc
commit-hash: bfe15646761a75f0259e204cab071565eed2b1e5
commit-date: 2022-01-22
host: x86_64-apple-darwin
release: 1.60.0-nightly
LLVM version: 13.0.0

Error output

   Compiling rusoto_credential v0.45.0
error: internal compiler error: compiler/rustc_mir_transform/src/generator.rs:755:13: Broken MIR: generator contains type &mut Body in MIR, but typeck only knows about {ResumeTy, &HttpClient, std::time::Duration, HttpClient, &Client<HttpConnector>, Client<HttpConnector>, Request<Body>, tokio::time::Timeout<hyper::client::ResponseFuture>, (), Result<Result<Response<Body>, hyper::Error>, Elapsed>, Response<Body>, Vec<u8>, Next<Body>} and [&request::HttpClient, hyper::Request<hyper::Body>, std::time::Duration]
  --> /Users/dainem/.cargo/registry/src/github.com-1ecc6299db9ec823/rusoto_credential-0.45.0/src/request.rs:34:99
   |
34 |       pub async fn request(&self, req: Request<Body>, timeout: Duration) -> Result<String, IoError> {
   |  ___________________________________________________________________________________________________^
35 | |         match time::timeout(timeout, self.inner.request(req)).await {
36 | |             Err(_elapsed) => Err(IoError::new(ErrorKind::TimedOut, "Request timed out")),
37 | |             Ok(try_resp) => {
...  |
52 | |         }
53 | |     }
   | |_____^

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/bfe15646761a75f0259e204cab071565eed2b1e5/compiler/rustc_errors/src/lib.rs:1115:9
stack backtrace:
   0: std::panicking::begin_panic::<rustc_errors::ExplicitBug>
   1: std::panic::panic_any::<rustc_errors::ExplicitBug>
   2: <rustc_errors::HandlerInner>::span_bug::<rustc_span::span_encoding::Span>
   3: <rustc_errors::Handler>::span_bug::<rustc_span::span_encoding::Span>
   4: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, ()>
   5: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>
   6: rustc_middle::util::bug::span_bug_fmt::<rustc_span::span_encoding::Span>
   7: <rustc_mir_transform::generator::StateTransform as rustc_middle::mir::MirPass>::run_pass
   8: rustc_mir_transform::pass_manager::run_passes
   9: rustc_mir_transform::optimized_mir
  10: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, &rustc_middle::mir::Body>>
  11: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::optimized_mir, rustc_query_impl::plumbing::QueryCtxt>
  12: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
  13: rustc_metadata::rmeta::encoder::encode_metadata_impl
  14: rustc_data_structures::sync::join::<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, rustc_metadata::rmeta::encoder::EncodedMetadata, ()>
  15: rustc_metadata::rmeta::encoder::encode_metadata
  16: <rustc_interface::passes::QueryContext>::enter::<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_errors::ErrorReported>>
  17: <rustc_interface::queries::Queries>::ongoing_codegen
  18: <rustc_interface::interface::Compiler>::enter::<rustc_driver::run_compiler::{closure#1}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_errors::ErrorReported>>
  19: rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_interface::interface::create_compiler_and_run<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#1}>::{closure#1}>
  20: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.60.0-nightly (bfe156467 2022-01-22) running on x86_64-apple-darwin

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

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [optimized_mir] optimizing MIR for `request::<impl at /Users/dainem/.cargo/registry/src/github.com-1ecc6299db9ec823/rusoto_credential-0.45.0/src/request.rs:16:1: 54:2>::request::{closure#0}`
end of query stack
error: could not compile `rusoto_credential`
@scuzzycheese scuzzycheese 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 Jan 23, 2022
@compiler-errors
Copy link
Member

compiler-errors commented Jan 23, 2022

@eholk perhaps this is related to #91032?
edit: Yeah seems like it.

@scuzzycheese
Copy link
Author

Possible root cause is the whiskey I'm drinking.

@lqd
Copy link
Member

lqd commented Jan 23, 2022

Thanks for opening an issue!

This is a duplicate of #93161, is already fixed on master, but not available on nightly yet. It will be fixed in the next nightly which will contain #93165.

The 2 most recent nightlies have this issue:

  • "nightly-2022-01-23" on rustup: rustc 1.60.0-nightly (bfe156467 2022-01-22)
  • "nightly-2022-01-22" on rustup: rustc 1.60.0-nightly (17d29dcdc 2022-01-21).

I've checked that rusoto and rusoto_credential both build with that PR, (via rustup-toolchain-master of PR #93165's try artifacts d634ef421795e0140724aa9fddf8137b83e616c9) so I'll close this issue as a duplicate.

While there are other ICEs that are still not fixed, it is thus expected that this one will be. Please reopen this issue if tomorrow's nightly doesn't fix it though.

@lqd lqd closed this as completed Jan 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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

No branches or pull requests

3 participants