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

Compiler Panic (min_const_generics?) #83034

Closed
npmccallum opened this issue Mar 11, 2021 · 4 comments
Closed

Compiler Panic (min_const_generics?) #83034

npmccallum opened this issue Mar 11, 2021 · 4 comments
Labels
C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example 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

@npmccallum
Copy link
Contributor

Code

I am unfortunately not able to make a reproducing example. This error only arises when writing a test for a method. Nothing is particularly strange about the method invocation. However, I am using min_const_generics.

Meta

rustc --version --verbose:

$ rustc --version --verbose
rustc 1.51.0-beta.4 (4d25f4607 2021-03-05)
binary: rustc
commit-hash: 4d25f4607015a56d18d7c6c649441608a9298845
commit-date: 2021-03-05
host: x86_64-unknown-linux-gnu
release: 1.51.0-beta.4
LLVM version: 11.0.1

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', /cargo/registry/src/github.com-1e
cc6299db9ec823/ena-0.14.0/src/snapshot_vec.rs:199:10
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-comp
iler&template=ice.md

note: rustc 1.51.0-beta.4 (4d25f4607 2021-03-05) running on x86_64-unknown-linux-gnu

note: compiler flags: -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 [codegen_fulfill_obligation] checking if `std::ops::Try` fulfills its obligations
#1 [resolve_instance] resolving instance `<std::result::Result<[u8; 512], quoin_device::Error<quoin_device::Error<quoin_device::Error<_>>>> as std::ops::Try>::into_result`
end of query stack
Backtrace

stack backtrace:
   0: rust_begin_unwind
             at /rustc/4d25f4607015a56d18d7c6c649441608a9298845/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/4d25f4607015a56d18d7c6c649441608a9298845/library/core/src/panicking.rs:92:14
   2: core::panicking::panic_bounds_check
             at /rustc/4d25f4607015a56d18d7c6c649441608a9298845/library/core/src/panicking.rs:69:5
   3: <rustc_infer::infer::freshen::TypeFreshener as rustc_middle::ty::fold::TypeFolder>::fold_ty
   4: rustc_middle::ty::fold::TypeFoldable::fold_with
   5: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::su
per_fold_with
   6: <rustc_infer::infer::freshen::TypeFreshener as rustc_middle::ty::fold::TypeFolder>::fold_ty
   7: rustc_middle::ty::fold::TypeFoldable::fold_with
   8: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::su
per_fold_with
   9: <rustc_infer::infer::freshen::TypeFreshener as rustc_middle::ty::fold::TypeFolder>::fold_ty
  10: rustc_middle::ty::fold::TypeFoldable::fold_with
  11: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
  12: <rustc_infer::infer::freshen::TypeFreshener as rustc_middle::ty::fold::TypeFolder>::fold_ty
  13: rustc_middle::ty::fold::TypeFoldable::fold_with
  14: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with
  15: <rustc_infer::infer::freshen::TypeFreshener as rustc_middle::ty::fold::TypeFolder>::fold_ty
  16: rustc_middle::ty::fold::TypeFoldable::fold_with
  17: rustc_trait_selection::traits::select::SelectionContext::select
  18: rustc_infer::infer::InferCtxtBuilder::enter
  19: rustc_trait_selection::traits::codegen::codegen_fulfill_obligation
  20: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::codegen_fulfill_obligation>::compute
  21: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  22: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  23: rustc_data_structures::stack::ensure_sufficient_stack
  24: rustc_query_system::query::plumbing::force_query_with_job
  25: rustc_query_system::query::plumbing::get_query_impl
  26: rustc_ty_utils::instance::inner_resolve_instance
  27: rustc_ty_utils::instance::resolve_instance
  28: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::resolve_instance>::compute
  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::dep_graph::graph::DepGraph<K>::with_task_impl
  31: rustc_data_structures::stack::ensure_sufficient_stack
  32: rustc_query_system::query::plumbing::force_query_with_job
  33: rustc_query_system::query::plumbing::get_query_impl
  34: rustc_middle::ty::instance::Instance::resolve_opt_const_arg
  35: rustc_middle::ty::instance::Instance::resolve
  36: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
  37: rustc_mir::monomorphize::collector::collect_neighbours
  38: rustc_mir::monomorphize::collector::collect_items_rec
  39: rustc_mir::monomorphize::collector::collect_items_rec
  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_items_rec
  67: rustc_mir::monomorphize::collector::collect_items_rec
  68: rustc_mir::monomorphize::collector::collect_items_rec
  69: rustc_mir::monomorphize::collector::collect_items_rec
  70: rustc_mir::monomorphize::collector::collect_items_rec
  71: rustc_mir::monomorphize::collector::collect_items_rec
  72: rustc_mir::monomorphize::collector::collect_items_rec
  73: rustc_mir::monomorphize::collector::collect_items_rec
  74: rustc_mir::monomorphize::collector::collect_items_rec
  75: rustc_mir::monomorphize::collector::collect_items_rec
  76: rustc_mir::monomorphize::collector::collect_items_rec
  77: rustc_mir::monomorphize::collector::collect_items_rec
  78: rustc_mir::monomorphize::collector::collect_items_rec
  79: rustc_mir::monomorphize::collector::collect_items_rec
  80: rustc_mir::monomorphize::collector::collect_items_rec
  81: rustc_mir::monomorphize::collector::collect_items_rec
  82: rustc_mir::monomorphize::collector::collect_items_rec
  83: rustc_mir::monomorphize::collector::collect_items_rec
  84: rustc_mir::monomorphize::collector::collect_items_rec
  85: rustc_mir::monomorphize::collector::collect_items_rec
  86: rustc_mir::monomorphize::collector::collect_items_rec
  87: rustc_mir::monomorphize::collector::collect_items_rec
  88: rustc_mir::monomorphize::collector::collect_items_rec
  89: rustc_mir::monomorphize::collector::collect_items_rec

@npmccallum npmccallum 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 Mar 11, 2021
@memoryruins
Copy link
Contributor

http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/ contains many helpful tactics for minimizing code in bug reports.

@npmccallum
Copy link
Contributor Author

I was able to figure out that this happens from infinite type recursion when using generics.

@memoryruins
Copy link
Contributor

#83120 also hit a panic inside of ena-0.14.0/src/snapshot_vec.rs while using const generics, though it could be for a different reason.

@JohnTitor JohnTitor added the E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example label Mar 16, 2021
@Enselic
Copy link
Member

Enselic commented Sep 6, 2023

Triage: Without a way for others to reproduce the ICE, not much can be done at this point. Closing.

@Enselic Enselic closed this as not planned Won't fix, can't repro, duplicate, stale Sep 6, 2023
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. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example 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

4 participants