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

ICE: index out of bounds: the len is 323 but the index is 324, ena-0.14.0/src/snapshot_vec.rs:199:10 #99914

Closed
jyn514 opened this issue Jul 29, 2022 · 9 comments · Fixed by #99928
Assignees
Labels
A-impl-trait Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch. C-bug Category: This is a bug. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-medium Medium priority regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@jyn514
Copy link
Member

jyn514 commented Jul 29, 2022

Code

This was in a closed source codebase I don't have time to minimize right now. It happened when I called .unwrap_or_else() (or something like that, don't exactly remember) on a value with type impl Future<Output = Result<T, E>>. Don't remember what T or E were :(

Meta

rustc --version --verbose:

rustc 1.64.0-nightly (2643b1646 2022-07-27)

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 323 but the index is 324', /cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
Backtrace

thread 'rustc' panicked at 'index out of bounds: the len is 323 but the index is 324', /cargo/registry/src/github.com-1ecc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
stack backtrace:
   0:     0x7fb84c72a2f0 - std::backtrace_rs::backtrace::libunwind::trace::hfde61216c3eb9aa2
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   1:     0x7fb84c72a2f0 - std::backtrace_rs::backtrace::trace_unsynchronized::h0b75016d6e62613e
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fb84c72a2f0 - std::sys_common::backtrace::_print_fmt::hb881989378b0427a
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7fb84c72a2f0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd3d0d57171db7305
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7fb84c78570c - core::fmt::write::h27d3752df3a82c58
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/fmt/mod.rs:1198:17
   5:     0x7fb84c71b325 - std::io::Write::write_fmt::h5c80c98739fc77ee
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/io/mod.rs:1672:15
   6:     0x7fb84c72cfc1 - std::sys_common::backtrace::_print::haae4b9f0159881ee
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7fb84c72cfc1 - std::sys_common::backtrace::print::h2ee3dba2d51e8a7c
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7fb84c72cfc1 - std::panicking::default_hook::{{closure}}::h1b241d9ed5d4bf62
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/panicking.rs:295:22
   9:     0x7fb84c72cc93 - std::panicking::default_hook::hbfcb9dc844ea015d
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/panicking.rs:314:9
  10:     0x7fb84ef01114 - rustc_driver[65b554bd076cf949]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7fb84c72d7f6 - std::panicking::rust_panic_with_hook::ha922eb0926dfacd1
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/panicking.rs:702:17
  12:     0x7fb84c72d647 - std::panicking::begin_panic_handler::{{closure}}::h755221379ec8b759
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/panicking.rs:588:13
  13:     0x7fb84c72a814 - std::sys_common::backtrace::__rust_end_short_backtrace::hdaef891366623f57
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/sys_common/backtrace.rs:138:18
  14:     0x7fb84c72d372 - rust_begin_unwind
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/panicking.rs:584:5
  15:     0x7fb84c7821e3 - core::panicking::panic_fmt::hb3e01db1bb39d23b
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/panicking.rs:142:14
  16:     0x7fb84c782122 - core::panicking::panic_bounds_check::hfa135c33a77c9e3c
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/panicking.rs:84:5
  17:     0x7fb84d8502db - <&rustc_middle[bd19c556bfbde64d]::ty::list::List<rustc_middle[bd19c556bfbde64d]::ty::subst::GenericArg> as rustc_middle[bd19c556bfbde64d]::ty::fold::TypeFoldable>::try_fold_with::<rustc_infer[9fb44eec1c8d58c7]::infer::resolve::OpportunisticVarResolver>
  18:     0x7fb84d84f10d - <rustc_infer[9fb44eec1c8d58c7]::infer::resolve::OpportunisticVarResolver as rustc_middle[bd19c556bfbde64d]::ty::fold::FallibleTypeFolder>::try_fold_ty
  19:     0x7fb84fd4e7d6 - <(rustc_middle[bd19c556bfbde64d]::ty::Ty, rustc_middle[bd19c556bfbde64d]::ty::Ty) as rustc_middle[bd19c556bfbde64d]::ty::fold::TypeFoldable>::fold_with::<rustc_infer[9fb44eec1c8d58c7]::infer::resolve::OpportunisticVarResolver>
  20:     0x7fb84fd4153f - <rustc_infer[9fb44eec1c8d58c7]::infer::InferCtxt>::same_type_modulo_infer
  21:     0x7fb84fd46ab2 - <rustc_infer[9fb44eec1c8d58c7]::infer::InferCtxt>::note_type_err
  22:     0x7fb84fd3d3c7 - <rustc_infer[9fb44eec1c8d58c7]::infer::InferCtxt>::report_and_explain_type_error
  23:     0x7fb84da7d44b - <rustc_infer[9fb44eec1c8d58c7]::infer::InferCtxt>::report_mismatched_types
  24:     0x7fb84f350641 - <rustc_typeck[664e6494d36bc9f9]::check::coercion::CoerceMany<&rustc_hir[e63fe2e2ba61df9e]::hir::Expr>>::report_return_mismatched_types
  25:     0x7fb84da40ad5 - <rustc_typeck[664e6494d36bc9f9]::check::coercion::CoerceMany<&rustc_hir[e63fe2e2ba61df9e]::hir::Expr>>::coerce
  26:     0x7fb84dd75752 - rustc_typeck[664e6494d36bc9f9]::check::check::check_fn
  27:     0x7fb84daa087a - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_closure
  28:     0x7fb84da347a3 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  29:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  30:     0x7fb84da3304c - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  31:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  32:     0x7fb84d9e5b7e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_call
  33:     0x7fb84da31b69 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  34:     0x7fb84da704ac - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_match
  35:     0x7fb84da33244 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  36:     0x7fb84da659a1 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_decl
  37:     0x7fb84da3527b - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  38:     0x7fb84da334cc - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  39:     0x7fb84da4423e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_block_with_expected
  40:     0x7fb84da31c96 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  41:     0x7fb84dd7566e - rustc_typeck[664e6494d36bc9f9]::check::check::check_fn
  42:     0x7fb84daa087a - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_closure
  43:     0x7fb84da347a3 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  44:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  45:     0x7fb84d9e5b7e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_call
  46:     0x7fb84da31b69 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  47:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  48:     0x7fb84d9e5b7e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_call
  49:     0x7fb84da31b69 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  50:     0x7fb84da44033 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_block_with_expected
  51:     0x7fb84da31c96 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  52:     0x7fb84dd7566e - rustc_typeck[664e6494d36bc9f9]::check::check::check_fn
  53:     0x7fb84daa087a - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_closure
  54:     0x7fb84da347a3 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  55:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  56:     0x7fb84da3304c - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  57:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  58:     0x7fb84d9e5b7e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_call
  59:     0x7fb84da31b69 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  60:     0x7fb84da704ac - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_match
  61:     0x7fb84da33244 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  62:     0x7fb84da4423e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_block_with_expected
  63:     0x7fb84da31c96 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  64:     0x7fb84da337a8 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  65:     0x7fb84da4423e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_block_with_expected
  66:     0x7fb84da31c96 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  67:     0x7fb84dd7566e - rustc_typeck[664e6494d36bc9f9]::check::check::check_fn
  68:     0x7fb84daa087a - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_closure
  69:     0x7fb84da347a3 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  70:     0x7fb84da2bd3f - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_argument_types
  71:     0x7fb84d9e5b7e - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_call
  72:     0x7fb84da31b69 - <rustc_typeck[664e6494d36bc9f9]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  73:     0x7fb84dd7566e - rustc_typeck[664e6494d36bc9f9]::check::check::check_fn
  74:     0x7fb84dd63147 - <rustc_infer[9fb44eec1c8d58c7]::infer::InferCtxtBuilder>::enter::<&rustc_middle[bd19c556bfbde64d]::ty::context::TypeckResults, <rustc_typeck[664e6494d36bc9f9]::check::inherited::InheritedBuilder>::enter<rustc_typeck[664e6494d36bc9f9]::check::typeck_with_fallback<rustc_typeck[664e6494d36bc9f9]::check::typeck::{closure#0}>::{closure#1}, &rustc_middle[bd19c556bfbde64d]::ty::context::TypeckResults>::{closure#0}>
  75:     0x7fb84e926ec6 - rustc_typeck[664e6494d36bc9f9]::check::typeck
  76:     0x7fb84e53406f - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[bd19c556bfbde64d]::ty::context::TyCtxt, rustc_span[c9cc50052627be11]::def_id::LocalDefId, &rustc_middle[bd19c556bfbde64d]::ty::context::TypeckResults>
  77:     0x7fb84e52c40a - rustc_query_system[8afb442a6454b51e]::query::plumbing::try_execute_query::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt, rustc_query_system[8afb442a6454b51e]::query::caches::DefaultCache<rustc_span[c9cc50052627be11]::def_id::LocalDefId, &rustc_middle[bd19c556bfbde64d]::ty::context::TypeckResults>>
  78:     0x7fb84eb6eff6 - rustc_query_system[8afb442a6454b51e]::query::plumbing::force_query::<rustc_query_impl[7b7d1ce597391f7c]::queries::typeck, rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  79:     0x7fb84eb6ee3e - rustc_query_impl[7b7d1ce597391f7c]::query_callbacks::typeck::force_from_dep_node
  80:     0x7fb84d97bfe1 - <rustc_middle[bd19c556bfbde64d]::ty::context::TyCtxt as rustc_query_system[8afb442a6454b51e]::dep_graph::DepContext>::try_force_from_dep_node
  81:     0x7fb84d97b54a - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  82:     0x7fb84d97adc6 - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  83:     0x7fb84d97adc6 - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  84:     0x7fb84d97adc6 - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  85:     0x7fb84d97adc6 - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  86:     0x7fb84d97adc6 - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  87:     0x7fb84e3846e7 - rustc_query_system[8afb442a6454b51e]::query::plumbing::get_query::<rustc_query_impl[7b7d1ce597391f7c]::queries::type_of, rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  88:     0x7fb84e828b98 - rustc_typeck[664e6494d36bc9f9]::check::check::check_item_type
  89:     0x7fb84e82505e - rustc_typeck[664e6494d36bc9f9]::check::check::check_mod_item_types
  90:     0x7fb84e1f5642 - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[bd19c556bfbde64d]::ty::context::TyCtxt, rustc_span[c9cc50052627be11]::def_id::LocalDefId, ()>
  91:     0x7fb84e1f47ce - rustc_query_system[8afb442a6454b51e]::query::plumbing::try_execute_query::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt, rustc_query_system[8afb442a6454b51e]::query::caches::DefaultCache<rustc_span[c9cc50052627be11]::def_id::LocalDefId, ()>>
  92:     0x7fb84e96df43 - rustc_query_system[8afb442a6454b51e]::query::plumbing::get_query::<rustc_query_impl[7b7d1ce597391f7c]::queries::check_mod_item_types, rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  93:     0x7fb84ec0e0ef - <rustc_middle[bd19c556bfbde64d]::hir::map::Map>::for_each_module::<rustc_typeck[664e6494d36bc9f9]::check_crate::{closure#6}::{closure#0}>
  94:     0x7fb84e8eb795 - rustc_typeck[664e6494d36bc9f9]::check_crate
  95:     0x7fb84e8ead67 - rustc_interface[6c4ed5f5bcefca51]::passes::analysis
  96:     0x7fb84ecc273c - <rustc_query_system[8afb442a6454b51e]::dep_graph::graph::DepGraph<rustc_middle[bd19c556bfbde64d]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[bd19c556bfbde64d]::ty::context::TyCtxt, (), core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>
  97:     0x7fb84ecc1efb - rustc_query_system[8afb442a6454b51e]::query::plumbing::try_execute_query::<rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt, rustc_query_system[8afb442a6454b51e]::query::caches::DefaultCache<(), core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>>
  98:     0x7fb84ecc1a4e - rustc_query_system[8afb442a6454b51e]::query::plumbing::get_query::<rustc_query_impl[7b7d1ce597391f7c]::queries::analysis, rustc_query_impl[7b7d1ce597391f7c]::plumbing::QueryCtxt>
  99:     0x7fb84e68ec5e - <rustc_interface[6c4ed5f5bcefca51]::passes::QueryContext>::enter::<rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>
 100:     0x7fb84e68908e - <rustc_interface[6c4ed5f5bcefca51]::interface::Compiler>::enter::<rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}::{closure#2}, core[985efce893a97efa]::result::Result<core[985efce893a97efa]::option::Option<rustc_interface[6c4ed5f5bcefca51]::queries::Linker>, rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>
 101:     0x7fb84e6849da - rustc_span[c9cc50052627be11]::with_source_map::<core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>, rustc_interface[6c4ed5f5bcefca51]::interface::create_compiler_and_run<core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>, rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}>::{closure#1}>
 102:     0x7fb84e684430 - rustc_interface[6c4ed5f5bcefca51]::interface::create_compiler_and_run::<core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>, rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}>
 103:     0x7fb84e6826e2 - <scoped_tls[c96fdd959bf6d57b]::ScopedKey<rustc_span[c9cc50052627be11]::SessionGlobals>>::set::<rustc_interface[6c4ed5f5bcefca51]::interface::run_compiler<core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>, rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}>::{closure#0}, core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>
 104:     0x7fb84e6823cf - std[7b29f0aeec6d7a3b]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[6c4ed5f5bcefca51]::util::run_in_thread_pool_with_globals<rustc_interface[6c4ed5f5bcefca51]::interface::run_compiler<core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>, rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}>::{closure#0}, core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>::{closure#0}, core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>
 105:     0x7fb84ed3f239 - <<std[7b29f0aeec6d7a3b]::thread::Builder>::spawn_unchecked_<rustc_interface[6c4ed5f5bcefca51]::util::run_in_thread_pool_with_globals<rustc_interface[6c4ed5f5bcefca51]::interface::run_compiler<core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>, rustc_driver[65b554bd076cf949]::run_compiler::{closure#1}>::{closure#0}, core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>::{closure#0}, core[985efce893a97efa]::result::Result<(), rustc_errors[4b4dc7f65bce4740]::ErrorGuaranteed>>::{closure#1} as core[985efce893a97efa]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 106:     0x7fb84c737293 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5b4844b306fb76ba
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/alloc/src/boxed.rs:1935:9
 107:     0x7fb84c737293 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h90126c2a440b419a
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/alloc/src/boxed.rs:1935:9
 108:     0x7fb84c737293 - std::sys::unix::thread::Thread::new::thread_start::hfc37efb2513bd228
                               at /rustc/2643b16468fda787470340890212591d8bc832b7/library/std/src/sys/unix/thread.rs:108:17
 109:     0x7fb84c5f0609 - start_thread
                               at /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477:8
 110:     0x7fb84c513133 - clone
                               at /build/glibc-SzIz7B/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
 111:                0x0 - <unknown>

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.64.0-nightly (2643b1646 2022-07-27) running on x86_64-unknown-linux-gnu

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

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

query stack during panic:
#0 [typeck] type-checking `endpoints::serve::serve_udp`
#1 [type_of] computing type of `endpoints::serve::serve_udp::{opaque#0}`
#2 [check_mod_item_types] checking item types in module `endpoints::serve`
#3 [analysis] running analysis passes on this crate
end of query stack

@jyn514 jyn514 added 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. C-bug Category: This is a bug. labels Jul 29, 2022
@matthiaskrgr
Copy link
Member

@compiler-errors
Copy link
Member

Ugh, this is due to adding this InferCtxt::resolve_vars_if_possible call -- something is calling this InferCtxt::same_type_modulo_infer with a type that has region variables that no longer exist, probably from an InferCtxt::probe or InferCtxt::commit_if_ok...

I can possibly try to reproduce, but this will be difficult to do without an MVCE.

@compiler-errors compiler-errors self-assigned this Jul 29, 2022
@matthiaskrgr
Copy link
Member

@compiler-errors can you try rustc ./src/test/ui/hrtb/issue-95034.rs --edition=2021 --crate-type lib or is this a different issue?

@compiler-errors
Copy link
Member

This is a different issue. #95034 is a trait solver issue having to do with higher ranked type equality and the Generalizer.

This has to do with a region variable escaping out of a InferCtxt::commit_if_ok. Specifically it's this one: https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_typeck/check/coercion.rs.html#944

@compiler-errors
Copy link
Member

Actually wait this is a type variable that's escaping. Ugh, probably due to opaque types :?

@jyn514
Copy link
Member Author

jyn514 commented Jul 29, 2022

oh I forgot I saved this code

I will try to trim it down to something I can post publicly

@compiler-errors
Copy link
Member

@jyn514 if you can, it would be incredibly useful here.

@jyn514
Copy link
Member Author

jyn514 commented Jul 29, 2022

@compiler-errors

struct Error;

fn foo() {
    let initial_exchange: Result<usize, Error> = todo!();
    initial_exchange.and_then(|_|
        serve_udp_tunnel()
    ).await;
}

async fn serve_udp_tunnel() {}
query stack during panic:
#0 [typeck] type-checking `foo`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack

@jyn514 jyn514 added the regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. label Jul 29, 2022
@rustbot rustbot added the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label Jul 29, 2022
@jyn514 jyn514 added the A-async-await Area: Async & Await label Jul 29, 2022
@compiler-errors compiler-errors added A-impl-trait Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch. and removed A-async-await Area: Async & Await labels Jul 30, 2022
matthiaskrgr added a commit to matthiaskrgr/glacier that referenced this issue Jul 31, 2022
@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label Jul 31, 2022
@apiraino
Copy link
Contributor

apiraino commented Aug 3, 2022

WG-prioritization assigning priority (Zulip discussion).

@rustbot label -I-prioritize +P-medium

@rustbot rustbot added P-medium Medium priority and removed I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels Aug 3, 2022
@bors bors closed this as completed in 9cfd161 Aug 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-impl-trait Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch. C-bug Category: This is a bug. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ P-medium Medium priority regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. 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.

6 participants