ICE report as requested; no ICE on stable · Issue #130272 · rust-lang/rust (original) (raw)

ICE when a short-ish (5 lines) implementation is uncommented.

mcsherry@gallustrate columnar % cargo check                             
    Checking columnar v0.1.0 (/Users/mcsherry/Projects/columnar)
error: internal compiler error: compiler/rustc_middle/src/query/plumbing.rs:654:5: `tcx.extern_crate(LocalCrate)` is not supported for this key;
                                hint: Queries can be either made to the local crate, or the external crate. This error means you tried to use it for one that's not supported.
                                If that's not the case, extern_crate was likely never assigned to a provider function.

thread 'rustc' panicked at compiler/rustc_middle/src/query/plumbing.rs:654:5:
Box<dyn Any>
stack backtrace:
   0:        0x1103768d0 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hcdf1106207888f63
   1:        0x10d7624d8 - core::fmt::write::h88c578ba3597c376
   2:        0x11036a7ac - std::io::Write::write_fmt::h0d3cab7689d83b4b
   3:        0x110376790 - std::sys::backtrace::BacktraceLock::print::h66abeb1b568c7ff5
   4:        0x110378c7c - std::panicking::default_hook::{{closure}}::h1b45f3bddd52408e
   5:        0x110378ae4 - std::panicking::default_hook::h794c296b823bf9db
...

In producing this report, I found that the ICE does not occur on stable, and instead it produces an error

error[E0277]: the trait bound json::Values: Len is not satisfied --> src/main.rs:479:30 | 479 | impl columnar::Index for Values { | ^^^^^^ the trait Len is not implemented for json::Values |

When I add this implementation stable builds fine, but also nightly no longer has the ICE. I've linked the code in a commit that does not have the missing implementation, so that you can trigger the ICE, but I'll likely be moving forward with the non-ICEing implementation so do use that link rather than looking on master.

Code

The following snippet, when uncommented, produces an ICE that I am asked to report. No attempt was made at minimization, as I haven't the foggiest what the error means:

https://github.com/frankmcsherry/columnar/blob/119508fcc9a6651c33c5aee32865442c2c6dc2ac/src/main.rs#L478-L484

Meta

rustc --version --verbose:

rustc 1.83.0-nightly (8d6b88b16 2024-09-11)
binary: rustc
commit-hash: 8d6b88b168e45ee1624699c19443c49665322a91
commit-date: 2024-09-11
host: aarch64-apple-darwin
release: 1.83.0-nightly
LLVM version: 19.1.0

Error output

Backtrace

mcsherry@gallustrate columnar % rust_backtrace=1 cargo check
    Checking columnar v0.1.0 (/Users/mcsherry/Projects/columnar)
error: internal compiler error: compiler/rustc_middle/src/query/plumbing.rs:654:5: `tcx.extern_crate(LocalCrate)` is not supported for this key;
                                hint: Queries can be either made to the local crate, or the external crate. This error means you tried to use it for one that's not supported.
                                If that's not the case, extern_crate was likely never assigned to a provider function.

thread 'rustc' panicked at compiler/rustc_middle/src/query/plumbing.rs:654:5:
Box<dyn Any>
stack backtrace:
   0:        0x11218a8d0 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hcdf1106207888f63
   1:        0x10f5764d8 - core::fmt::write::h88c578ba3597c376
   2:        0x11217e7ac - std::io::Write::write_fmt::h0d3cab7689d83b4b
   3:        0x11218a790 - std::sys::backtrace::BacktraceLock::print::h66abeb1b568c7ff5
   4:        0x11218cc7c - std::panicking::default_hook::{{closure}}::h1b45f3bddd52408e
   5:        0x11218cae4 - std::panicking::default_hook::h794c296b823bf9db
   6:        0x110153250 - <alloc[c01488999d15f48e]::boxed::Box<rustc_driver_impl[153ac12c16de724d]::install_ice_hook::{closure#0}> as core[7e1b29dc511eddb7]::ops::function::Fn<(&dyn for<'a, 'b> core[7e1b29dc511eddb7]::ops::function::Fn<(&'a std[a705629b94c28459]::panic::PanicHookInfo<'b>,), Output = ()> + core[7e1b29dc511eddb7]:📑:Send + core[7e1b29dc511eddb7]:📑:Sync, &std[a705629b94c28459]::panic::PanicHookInfo)>>::call
   7:        0x11218d4f4 - std::panicking::rust_panic_with_hook::he467074a57b36db5
   8:        0x1101eed54 - std[a705629b94c28459]::panicking::begin_panic::<rustc_errors[c50f64eac8a76fa8]::ExplicitBug>::{closure#0}
   9:        0x1101ede44 - std[a705629b94c28459]::sys::backtrace::__rust_end_short_backtrace::<std[a705629b94c28459]::panicking::begin_panic<rustc_errors[c50f64eac8a76fa8]::ExplicitBug>::{closure#0}, !>
  10:        0x1148890f8 - std[a705629b94c28459]::panicking::begin_panic::<rustc_errors[c50f64eac8a76fa8]::ExplicitBug>
  11:        0x1101eff70 - <rustc_errors[c50f64eac8a76fa8]::diagnostic::BugAbort as rustc_errors[c50f64eac8a76fa8]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  12:        0x110dc3bd0 - rustc_middle[40631e60f33eea58]::util:🐛:opt_span_bug_fmt::<rustc_span[5dde48fc31969b1f]::span_encoding::Span>::{closure#0}
  13:        0x110dbdbe0 - rustc_middle[40631e60f33eea58]::ty::context::tls::with_opt::<rustc_middle[40631e60f33eea58]::util:🐛:opt_span_bug_fmt<rustc_span[5dde48fc31969b1f]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  14:        0x110dbdbac - rustc_middle[40631e60f33eea58]::ty::context::tls::with_context_opt::<rustc_middle[40631e60f33eea58]::ty::context::tls::with_opt<rustc_middle[40631e60f33eea58]::util:🐛:opt_span_bug_fmt<rustc_span[5dde48fc31969b1f]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  15:        0x1149235fc - rustc_middle[40631e60f33eea58]::util:🐛:bug_fmt
  16:        0x114925038 - rustc_middle[40631e60f33eea58]::query::plumbing::default_query
  17:        0x110e1d660 - <<rustc_middle[40631e60f33eea58]::query::Providers as core[7e1b29dc511eddb7]::default::Default>::default::{closure#189} as core[7e1b29dc511eddb7]::ops::function::FnOnce<(rustc_middle[40631e60f33eea58]::ty::context::TyCtxt, rustc_middle[40631e60f33eea58]::query::keys::LocalCrate)>>::call_once
  18:        0x111719104 - rustc_query_impl[6a673aab23e1f582]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6a673aab23e1f582]::query_impl::extern_crate::dynamic_query::{closure#2}::{closure#0}, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 8usize]>>
  19:        0x111888ebc - <rustc_query_impl[6a673aab23e1f582]::query_impl::extern_crate::dynamic_query::{closure#2} as core[7e1b29dc511eddb7]::ops::function::FnOnce<(rustc_middle[40631e60f33eea58]::ty::context::TyCtxt, rustc_span[5dde48fc31969b1f]::def_id::CrateNum)>>::call_once
  20:        0x1116cfee0 - rustc_query_system[696f83dd047c098f]::query::plumbing::try_execute_query::<rustc_query_impl[6a673aab23e1f582]::DynamicConfig<rustc_query_system[696f83dd047c098f]::query::caches::VecCache<rustc_span[5dde48fc31969b1f]::def_id::CrateNum, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6a673aab23e1f582]::plumbing::QueryCtxt, true>
  21:        0x1118acac8 - rustc_query_impl[6a673aab23e1f582]::query_impl::extern_crate::get_query_incr::__rust_end_short_backtrace
  22:        0x111f3a7c4 - <&mut <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::report_similar_impl_candidates::{closure#1} as core[7e1b29dc511eddb7]::ops::function::FnMut<(rustc_span[5dde48fc31969b1f]::def_id::DefId,)>>::call_mut
  23:        0x111ee288c - <alloc[c01488999d15f48e]::vec::Vec<(rustc_span[5dde48fc31969b1f]::span_encoding::Span, alloc[c01488999d15f48e]:🧵:String)> as alloc[c01488999d15f48e]::vec::spec_from_iter::SpecFromIter<(rustc_span[5dde48fc31969b1f]::span_encoding::Span, alloc[c01488999d15f48e]:🧵:String), core[7e1b29dc511eddb7]::iter::adapters::map::Map<core[7e1b29dc511eddb7]::iter::adapters::filter_map::FilterMap<core[7e1b29dc511eddb7]::array::iter::IntoIter<rustc_span[5dde48fc31969b1f]::def_id::DefId, 2usize>, <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::report_similar_impl_candidates::{closure#1}>, <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::report_similar_impl_candidates::{closure#2}>>>::from_iter
  24:        0x111d1b2f0 - <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::report_similar_impl_candidates
  25:        0x111d21410 - <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::try_to_add_help_message
  26:        0x111d17204 - <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::report_selection_error
  27:        0x111d3e33c - <rustc_trait_selection[54a71ea60785e42b]::error_reporting::TypeErrCtxt>::report_fulfillment_errors
  28:        0x111f46418 - <rustc_trait_selection[54a71ea60785e42b]::traits::engine::ObligationCtxt<rustc_trait_selection[54a71ea60785e42b]::traits::FulfillmentError>>::assumed_wf_types_and_report_errors
  29:        0x110540ae8 - rustc_hir_analysis[9e5120abf2907e11]::check::wfcheck::check_well_formed
  30:        0x11171b998 - rustc_query_impl[6a673aab23e1f582]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6a673aab23e1f582]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>
  31:        0x11183f574 - <rustc_query_impl[6a673aab23e1f582]::query_impl::check_well_formed::dynamic_query::{closure#2} as core[7e1b29dc511eddb7]::ops::function::FnOnce<(rustc_middle[40631e60f33eea58]::ty::context::TyCtxt, rustc_hir[507c7a731f66ace7]::hir_id::OwnerId)>>::call_once
  32:        0x1116b4e50 - rustc_query_system[696f83dd047c098f]::query::plumbing::try_execute_query::<rustc_query_impl[6a673aab23e1f582]::DynamicConfig<rustc_query_system[696f83dd047c098f]::query::caches::VecCache<rustc_hir[507c7a731f66ace7]::hir_id::OwnerId, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6a673aab23e1f582]::plumbing::QueryCtxt, true>
  33:        0x1118ada70 - rustc_query_impl[6a673aab23e1f582]::query_impl::check_well_formed::get_query_incr::__rust_end_short_backtrace
  34:        0x1104e227c - rustc_middle[40631e60f33eea58]::query::plumbing::query_ensure_error_guaranteed::<rustc_query_system[696f83dd047c098f]::query::caches::VecCache<rustc_hir[507c7a731f66ace7]::hir_id::OwnerId, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>, ()>
  35:        0x1104d8eec - <rustc_data_structures[cdd1f8a1eb5f876d]::sync::parallel::ParallelGuard>::run::<core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>, rustc_data_structures[cdd1f8a1eb5f876d]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[507c7a731f66ace7]::hir::TraitItemId], rustc_span[5dde48fc31969b1f]::ErrorGuaranteed, <rustc_middle[40631e60f33eea58]::hir::ModuleItems>::par_trait_items<rustc_hir_analysis[9e5120abf2907e11]::check::wfcheck::check_mod_type_wf::{closure#2}>::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>
  36:        0x110552c58 - <rustc_middle[40631e60f33eea58]::hir::ModuleItems>::par_items::<rustc_hir_analysis[9e5120abf2907e11]::check::wfcheck::check_mod_type_wf::{closure#0}>
  37:        0x1105465cc - rustc_hir_analysis[9e5120abf2907e11]::check::wfcheck::check_mod_type_wf
  38:        0x11171b94c - rustc_query_impl[6a673aab23e1f582]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6a673aab23e1f582]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>
  39:        0x11192b3ec - <rustc_query_impl[6a673aab23e1f582]::query_impl::check_mod_type_wf::dynamic_query::{closure#2} as core[7e1b29dc511eddb7]::ops::function::FnOnce<(rustc_middle[40631e60f33eea58]::ty::context::TyCtxt, rustc_span[5dde48fc31969b1f]::def_id::LocalModDefId)>>::call_once
  40:        0x11167c440 - rustc_query_system[696f83dd047c098f]::query::plumbing::try_execute_query::<rustc_query_impl[6a673aab23e1f582]::DynamicConfig<rustc_query_system[696f83dd047c098f]::query::caches::DefaultCache<rustc_span[5dde48fc31969b1f]::def_id::LocalModDefId, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6a673aab23e1f582]::plumbing::QueryCtxt, true>
  41:        0x11189ddac - rustc_query_impl[6a673aab23e1f582]::query_impl::check_mod_type_wf::get_query_incr::__rust_end_short_backtrace
  42:        0x1104d90b8 - <rustc_data_structures[cdd1f8a1eb5f876d]::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures[cdd1f8a1eb5f876d]::sync::parallel::enabled::par_for_each_in<&rustc_hir[507c7a731f66ace7]::hir_id::OwnerId, &[rustc_hir[507c7a731f66ace7]::hir_id::OwnerId], <rustc_middle[40631e60f33eea58]::hir::map::Map>::par_for_each_module<rustc_hir_analysis[9e5120abf2907e11]::check_crate::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>
  43:        0x11057f854 - rustc_hir_analysis[9e5120abf2907e11]::check_crate
  44:        0x110a671a4 - rustc_interface[37ae34e3d70a486b]::passes::analysis
  45:        0x111720e04 - rustc_query_impl[6a673aab23e1f582]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6a673aab23e1f582]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>
  46:        0x11192e90c - <rustc_query_impl[6a673aab23e1f582]::query_impl::analysis::dynamic_query::{closure#2} as core[7e1b29dc511eddb7]::ops::function::FnOnce<(rustc_middle[40631e60f33eea58]::ty::context::TyCtxt, ())>>::call_once
  47:        0x11163c170 - rustc_query_system[696f83dd047c098f]::query::plumbing::try_execute_query::<rustc_query_impl[6a673aab23e1f582]::DynamicConfig<rustc_query_system[696f83dd047c098f]::query::caches::SingleCache<rustc_middle[40631e60f33eea58]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6a673aab23e1f582]::plumbing::QueryCtxt, true>
  48:        0x11188fedc - rustc_query_impl[6a673aab23e1f582]::query_impl::analysis::get_query_incr::__rust_end_short_backtrace
  49:        0x1100d0e34 - <rustc_middle[40631e60f33eea58]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[153ac12c16de724d]::run_compiler::{closure#0}::{closure#1}::{closure#5}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>
  50:        0x110125fa0 - <rustc_interface[37ae34e3d70a486b]::interface::Compiler>::enter::<rustc_driver_impl[153ac12c16de724d]::run_compiler::{closure#0}::{closure#1}, core[7e1b29dc511eddb7]::result::Result<core[7e1b29dc511eddb7]::option::Option<rustc_interface[37ae34e3d70a486b]::queries::Linker>, rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>
  51:        0x11010bd04 - rustc_span[5dde48fc31969b1f]::create_session_globals_then::<core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>, rustc_interface[37ae34e3d70a486b]::util::run_in_thread_with_globals<rustc_interface[37ae34e3d70a486b]::util::run_in_thread_pool_with_globals<rustc_interface[37ae34e3d70a486b]::interface::run_compiler<core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>, rustc_driver_impl[153ac12c16de724d]::run_compiler::{closure#0}>::{closure#1}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#0}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}>
  52:        0x110170328 - std[a705629b94c28459]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[37ae34e3d70a486b]::util::run_in_thread_with_globals<rustc_interface[37ae34e3d70a486b]::util::run_in_thread_pool_with_globals<rustc_interface[37ae34e3d70a486b]::interface::run_compiler<core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>, rustc_driver_impl[153ac12c16de724d]::run_compiler::{closure#0}>::{closure#1}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#0}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>
  53:        0x110170ab0 - <<std[a705629b94c28459]::thread::Builder>::spawn_unchecked_<rustc_interface[37ae34e3d70a486b]::util::run_in_thread_with_globals<rustc_interface[37ae34e3d70a486b]::util::run_in_thread_pool_with_globals<rustc_interface[37ae34e3d70a486b]::interface::run_compiler<core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>, rustc_driver_impl[153ac12c16de724d]::run_compiler::{closure#0}>::{closure#1}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#0}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7e1b29dc511eddb7]::result::Result<(), rustc_span[5dde48fc31969b1f]::ErrorGuaranteed>>::{closure#1} as core[7e1b29dc511eddb7]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  54:        0x112197b18 - std::sys::pal::unix::thread::Thread:🆕:thread_start::h9e782b2e7751f7b3
  55:        0x182cd2034 - __pthread_joiner_wake

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: please make sure that you have updated to the latest nightly

note: please attach the file at `/Users/mcsherry/Projects/columnar/rustc-ice-2024-09-12T12_18_37-9972.txt` to your bug report

note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked -C incremental=[REDACTED]

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

query stack during panic:
#0 [extern_crate] getting crate's ExternCrateData
#1 [check_well_formed] checking that `json::<impl at src/main.rs:479:5: 479:36>` is well-formed
end of query stack
error: could not compile `columnar` (bin "columnar")

Caused by:
  process didn't exit successfully: `/Users/mcsherry/.rustup/toolchains/nightly-aarch64-apple-darwin/bin/rustc --crate-name columnar --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=89 --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=c515cf71c4455edb -C extra-filename=-c515cf71c4455edb --out-dir /Users/mcsherry/Projects/columnar/target/debug/deps -C incremental=/Users/mcsherry/Projects/columnar/target/debug/incremental -L dependency=/Users/mcsherry/Projects/columnar/target/debug/deps --extern bincode=/Users/mcsherry/Projects/columnar/target/debug/deps/libbincode-d591253bb5391bab.rmeta --extern bytemuck=/Users/mcsherry/Projects/columnar/target/debug/deps/libbytemuck-ac1a238c7a933331.rmeta --extern columnar=/Users/mcsherry/Projects/columnar/target/debug/deps/libcolumnar-dc6717fddb8e5fea.rmeta --extern rmp_serde=/Users/mcsherry/Projects/columnar/target/debug/deps/librmp_serde-532ca22514f78a47.rmeta --extern serde=/Users/mcsherry/Projects/columnar/target/debug/deps/libserde-bb67cca9aa1779fe.rmeta --extern serde_json=/Users/mcsherry/Projects/columnar/target/debug/deps/libserde_json-8802652fb6a6b3e4.rmeta` (exit status: 101)
mcsherry@gallustrate columnar % 

Produced output file.

rustc-ice-2024-09-12T12_19_43-10017.txt