Skip to content

ICE in uv when doing a rebuild after code change #125367

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
BurntSushi opened this issue May 21, 2024 · 6 comments · Fixed by #126409
Closed

ICE in uv when doing a rebuild after code change #125367

BurntSushi opened this issue May 21, 2024 · 6 comments · Fixed by #126409
Labels
A-incr-comp Area: Incremental compilation 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

@BurntSushi
Copy link
Member

Code

Unfortunately this is nowhere near a minimal example, but it was a tricky one to figure out how to reliably reproduce. Here are the steps:

$ git clone [email protected]:astral-sh/uv uv-ice
$ cd uv-ice
$ git checkout 44fe0f6749249a223646baa87f9d7ce40b2e40f3
$ cargo b -p uv
$ git checkout eac8221718aaa3444d5bfc8099f4bdb0c3ef2f97
$ cargo b -p uv

Meta

$ rustc --version
rustc 1.78.0 (9b00956e5 2024-04-29)
$ cargo --version
cargo 1.78.0 (54d8815d0 2024-03-26)

Error output

thread 'rustc' panicked at compiler/rustc_metadata/src/rmeta/def_path_hash_map.rs:23:54:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0:     0x70e9ff589892 - std::backtrace_rs::backtrace::libunwind::trace::he4ee80166a02c846
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x70e9ff589892 - std::backtrace_rs::backtrace::trace_unsynchronized::h476faccf57e88641
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x70e9ff589892 - std::sys_common::backtrace::_print_fmt::h430c922a77e7a59c
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x70e9ff589892 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hffecb437d922f988
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x70e9ff5daa6c - core::fmt::rt::Argument::fmt::hf3df69369399bfa9
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/fmt/rt.rs:142:9
   5:     0x70e9ff5daa6c - core::fmt::write::hd9a8d7d029f9ea1a
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/fmt/mod.rs:1153:17
   6:     0x70e9ff57e78f - std::io::Write::write_fmt::h0e1226b2b8d973fe
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/io/mod.rs:1843:15
   7:     0x70e9ff589664 - std::sys_common::backtrace::_print::hd2df4a083f6e69b8
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x70e9ff589664 - std::sys_common::backtrace::print::he907f6ad7eee41cb
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x70e9ff58c35b - std::panicking::default_hook::{{closure}}::h3926193b61c9ca9b
  10:     0x70e9ff58c0b3 - std::panicking::default_hook::h25ba2457dea68e65
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:292:9
  11:     0x70e9fc22845d - std[e4dfbc2c3f4b09f1]::panicking::update_hook::<alloc[1adba907b9db1888]::boxed::Box<rustc_driver_impl[24a943716c49befe]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x70e9ff58cac0 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h022ca2c0d8c21c9e
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
  13:     0x70e9ff58cac0 - std::panicking::rust_panic_with_hook::h0ad14d90dcf5224f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:783:13
  14:     0x70e9ff58c7c9 - std::panicking::begin_panic_handler::{{closure}}::h4a1838a06f542647
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:649:13
  15:     0x70e9ff589d66 - std::sys_common::backtrace::__rust_end_short_backtrace::h77cc4dc3567ca904
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x70e9ff58c534 - rust_begin_unwind
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:645:5
  17:     0x70e9ff5d6f85 - core::panicking::panic_fmt::h940d4fd01a4b4fd1
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:72:14
  18:     0x70e9ff5d7043 - core::panicking::panic::h8ddd58dc57c2dc00
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:145:5
  19:     0x70e9ff5d6d16 - core::option::unwrap_failed::hf59153bb1e2fc334
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/option.rs:1985:5
  20:     0x70e9fd4f7b11 - <rustc_query_system[475239fef39bf53f]::dep_graph::dep_node::DepNode as rustc_middle[fda44fdb505d3e7f]::dep_graph::dep_node::DepNodeExt>::extract_def_id
  21:     0x70e9fe046e60 - rustc_query_impl[e4152ad88c3d6c78]::plumbing::force_from_dep_node::<rustc_query_impl[e4152ad88c3d6c78]::DynamicConfig<rustc_query_system[475239fef39bf53f]::query::caches::DefIdCache<rustc_middle[fda44fdb505d3e7f]::query::erase::Erased<[u8; 8usize]>>, false, false, false>>
  22:     0x70e9fe046d2d - <rustc_query_impl[e4152ad88c3d6c78]::plumbing::query_callback<rustc_query_impl[e4152ad88c3d6c78]::query_impl::type_of::QueryType>::{closure#0} as core[836963c7c1decc11]::ops::function::FnOnce<(rustc_middle[fda44fdb505d3e7f]::ty::context::TyCtxt, rustc_query_system[475239fef39bf53f]::dep_graph::dep_node::DepNode)>>::call_once
  23:     0x70e9fd429055 - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  24:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  25:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  26:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  27:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  28:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  29:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  30:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  31:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  32:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  33:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  34:     0x70e9fd428fbd - <rustc_query_system[475239fef39bf53f]::dep_graph::graph::DepGraphData<rustc_middle[fda44fdb505d3e7f]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt>
  35:     0x70e9fd598c90 - rustc_query_system[475239fef39bf53f]::query::plumbing::try_execute_query::<rustc_query_impl[e4152ad88c3d6c78]::DynamicConfig<rustc_query_system[475239fef39bf53f]::query::caches::DefaultCache<rustc_middle[fda44fdb505d3e7f]::ty::ParamEnvAnd<(rustc_middle[fda44fdb505d3e7f]::ty::instance::Instance, &rustc_middle[fda44fdb505d3e7f]::ty::list::List<rustc_middle[fda44fdb505d3e7f]::ty::Ty>)>, rustc_middle[fda44fdb505d3e7f]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[e4152ad88c3d6c78]::plumbing::QueryCtxt, true>
  36:     0x70e9fd597aea - rustc_query_impl[e4152ad88c3d6c78]::query_impl::fn_abi_of_instance::get_query_incr::__rust_end_short_backtrace
  37:     0x70e9faeed3d3 - <rustc_codegen_llvm[f0cd90d441c72ba4]::context::CodegenCx as rustc_codegen_ssa[efaff1afc8f87053]::traits::declare::PreDefineMethods>::predefine_fn
  38:     0x70e9fe072d22 - rustc_codegen_llvm[f0cd90d441c72ba4]::base::compile_codegen_unit::module_codegen
  39:     0x70e9fe06f57d - <rustc_codegen_llvm[f0cd90d441c72ba4]::LlvmCodegenBackend as rustc_codegen_ssa[efaff1afc8f87053]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
  40:     0x70e9fe2f8a57 - <rustc_codegen_llvm[f0cd90d441c72ba4]::LlvmCodegenBackend as rustc_codegen_ssa[efaff1afc8f87053]::traits::backend::CodegenBackend>::codegen_crate
  41:     0x70e9fe1b418f - rustc_interface[ba2b6dc4c96cb491]::passes::start_codegen
  42:     0x70e9fe1b39c8 - <rustc_interface[ba2b6dc4c96cb491]::queries::Queries>::codegen_and_build_linker
  43:     0x70e9fdffc86f - rustc_interface[ba2b6dc4c96cb491]::interface::run_compiler::<core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>, rustc_driver_impl[24a943716c49befe]::run_compiler::{closure#0}>::{closure#0}
  44:     0x70e9fe33eb6e - std[e4dfbc2c3f4b09f1]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[ba2b6dc4c96cb491]::util::run_in_thread_with_globals<rustc_interface[ba2b6dc4c96cb491]::interface::run_compiler<core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>, rustc_driver_impl[24a943716c49befe]::run_compiler::{closure#0}>::{closure#0}, core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>>
  45:     0x70e9fe33e9ca - <<std[e4dfbc2c3f4b09f1]::thread::Builder>::spawn_unchecked_<rustc_interface[ba2b6dc4c96cb491]::util::run_in_thread_with_globals<rustc_interface[ba2b6dc4c96cb491]::interface::run_compiler<core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>, rustc_driver_impl[24a943716c49befe]::run_compiler::{closure#0}>::{closure#0}, core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[836963c7c1decc11]::result::Result<(), rustc_span[a4517f2b2e65298c]::ErrorGuaranteed>>::{closure#1} as core[836963c7c1decc11]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  46:     0x70e9ff596145 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h19b9e642d37e7272
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  47:     0x70e9ff596145 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h97265befc434d3ae
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  48:     0x70e9ff596145 - std::sys::pal::unix::thread::Thread::new::thread_start::h420dad5cf01a9f35
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys/pal/unix/thread.rs:108:17
  49:     0x70e9f92aa1cf - <unknown>
  50:     0x70e9f932b6ec - <unknown>
  51:                0x0 - <unknown>

error: 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.78.0 (9b00956e5 2024-04-29) running on x86_64-unknown-linux-gnu

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

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

query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `core::ptr::drop_in_place::<pubgrub::internal::partial_solution::PartialSolution<uv_resolver::dependency_provider::UvDependencyProvider>> - shim(Some(pubgrub::internal::partial_solution::PartialSolution<uv_resolver::dependency_provider::UvDependencyProvider>))`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 TraitSelect(55b8bee41a82e7c2-3a3e4d970e182545)
#1 TraitSelect(fa461f6d08d7dac4-e3befb3fa9cf797c)
#2 TraitSelect(4c00df648c347e83-3928b82f8f6e1ebf)
#3 TraitSelect(87bbbd51f6c2b1e7-5dac3f95440f7b31)
#4 TraitSelect(dfca409466fe9d60-c26dddb72c38ee7c)
#5 TraitSelect(84a9bc21b8ec357c-99ce74e5b76965fa)
#6 TraitSelect(960ad83381f93f02-7a9702a22a3f1b1d)
#7 TraitSelect(a87950bb1d902f9c-16fc745dd9e5eec5)
#8 TraitSelect(46412be99ebee7ac-293a8bf0f6e155a9)
#9 evaluate_obligation(ac0d9b43f463712d-cff58f98bac66ee0)
#10 is_unpin_raw(4c7531628bad62fa-664363cdb9b0d317)
#11 fn_abi_of_instance(ce984a7457c3d0f5-31b85a4f0be94126)
end of try_mark_green dep node stack
error: could not compile `uv` (bin "uv")

This also happens with current nightly too:

$ rustc +nightly --version
rustc 1.80.0-nightly (b92758a9a 2024-05-20)
$ cargo +nightly --version
cargo 1.80.0-nightly (0de7f2ec6 2024-05-17)

And here's the error from nightly:

thread 'rustc' panicked at compiler/rustc_metadata/src/rmeta/def_path_hash_map.rs:23:54:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0:     0x75c590e8e7f5 - std::backtrace_rs::backtrace::libunwind::trace::h5b560bab72e6154b
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x75c590e8e7f5 - std::backtrace_rs::backtrace::trace_unsynchronized::h4ee8ec99b43d8706
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x75c590e8e7f5 - std::sys_common::backtrace::_print_fmt::h6e8289aafa4fb13e
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x75c590e8e7f5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed32d0ff2aa0fdf1
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x75c590edd91b - core::fmt::rt::Argument::fmt::hca3a538408b6d3ca
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/core/src/fmt/rt.rs:165:63
   5:     0x75c590edd91b - core::fmt::write::h0c46818975380aad
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/core/src/fmt/mod.rs:1169:21
   6:     0x75c590e8357f - std::io::Write::write_fmt::h5ea3db9efd501baa
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/io/mod.rs:1835:15
   7:     0x75c590e8e5ce - std::sys_common::backtrace::_print::h27ff758d37d9e119
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x75c590e8e5ce - std::sys_common::backtrace::print::hafc6b0d8efbd24ba
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x75c590e90fc9 - std::panicking::default_hook::{{closure}}::ha573ac73171c717b
  10:     0x75c590e90d0d - std::panicking::default_hook::h8ed95b009f156527
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/panicking.rs:298:9
  11:     0x75c58d8e5cf0 - std[8dfc48a2846f20c1]::panicking::update_hook::<alloc[9143b4602d1c6346]::boxed::Box<rustc_driver_impl[475ad1987d1f8ff4]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x75c590e916fb - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h462bfb4e4b1a66a0
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/alloc/src/boxed.rs:2036:9
  13:     0x75c590e916fb - std::panicking::rust_panic_with_hook::h086afbf37fa35871
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/panicking.rs:799:13
  14:     0x75c590e9143b - std::panicking::begin_panic_handler::{{closure}}::ha322428a7efae35f
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/panicking.rs:656:13
  15:     0x75c590e8ecb9 - std::sys_common::backtrace::__rust_end_short_backtrace::hfc043f4d06966d4a
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x75c590e911a7 - rust_begin_unwind
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/panicking.rs:652:5
  17:     0x75c590ed9ee3 - core::panicking::panic_fmt::h6d75522ebd7efdf2
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/core/src/panicking.rs:72:14
  18:     0x75c590ed9f8c - core::panicking::panic::h6eb78686f8ac2d4f
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/core/src/panicking.rs:146:5
  19:     0x75c590ed9c69 - core::option::unwrap_failed::h034406070afbd7bc
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/core/src/option.rs:1984:5
  20:     0x75c58ecc4339 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::dep_node::DepNode as rustc_middle[2f8362f7e89cbd68]::dep_graph::dep_node::DepNodeExt>::extract_def_id
  21:     0x75c58f8296e0 - rustc_query_impl[8c69df15749cef02]::plumbing::force_from_dep_node::<rustc_query_impl[8c69df15749cef02]::DynamicConfig<rustc_query_system[6d97f4d71951f3fa]::query::caches::DefIdCache<rustc_middle[2f8362f7e89cbd68]::query::erase::Erased<[u8; 8usize]>>, false, false, false>>
  22:     0x75c58f8295ad - <rustc_query_impl[8c69df15749cef02]::plumbing::query_callback<rustc_query_impl[8c69df15749cef02]::query_impl::type_of::QueryType>::{closure#0} as core[fcbeababeaec86fe]::ops::function::FnOnce<(rustc_middle[2f8362f7e89cbd68]::ty::context::TyCtxt, rustc_query_system[6d97f4d71951f3fa]::dep_graph::dep_node::DepNode)>>::call_once
  23:     0x75c58ec2b222 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  24:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  25:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  26:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  27:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  28:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  29:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  30:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  31:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  32:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  33:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  34:     0x75c58ec2b199 - <rustc_query_system[6d97f4d71951f3fa]::dep_graph::graph::DepGraphData<rustc_middle[2f8362f7e89cbd68]::dep_graph::DepsType>>::try_mark_previous_green::<rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt>
  35:     0x75c58f0d6b74 - rustc_query_system[6d97f4d71951f3fa]::query::plumbing::try_execute_query::<rustc_query_impl[8c69df15749cef02]::DynamicConfig<rustc_query_system[6d97f4d71951f3fa]::query::caches::DefaultCache<rustc_middle[2f8362f7e89cbd68]::ty::ParamEnvAnd<(rustc_middle[2f8362f7e89cbd68]::ty::instance::Instance, &rustc_middle[2f8362f7e89cbd68]::ty::list::RawList<(), rustc_middle[2f8362f7e89cbd68]::ty::Ty>)>, rustc_middle[2f8362f7e89cbd68]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[8c69df15749cef02]::plumbing::QueryCtxt, true>
  36:     0x75c58f0d58da - rustc_query_impl[8c69df15749cef02]::query_impl::fn_abi_of_instance::get_query_incr::__rust_end_short_backtrace
  37:     0x75c58c048bb9 - <rustc_codegen_llvm[e7e620d8e1cab7f0]::context::CodegenCx as rustc_codegen_ssa[5a60f71214b3522a]::traits::declare::PreDefineMethods>::predefine_fn
  38:     0x75c58f846127 - rustc_codegen_llvm[e7e620d8e1cab7f0]::base::compile_codegen_unit::module_codegen
  39:     0x75c58f842786 - <rustc_codegen_llvm[e7e620d8e1cab7f0]::LlvmCodegenBackend as rustc_codegen_ssa[5a60f71214b3522a]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
  40:     0x75c58fb51b9d - rustc_codegen_ssa[5a60f71214b3522a]::base::codegen_crate::<rustc_codegen_llvm[e7e620d8e1cab7f0]::LlvmCodegenBackend>
  41:     0x75c58f9d750c - <rustc_codegen_llvm[e7e620d8e1cab7f0]::LlvmCodegenBackend as rustc_codegen_ssa[5a60f71214b3522a]::traits::backend::CodegenBackend>::codegen_crate
  42:     0x75c58f9d6e9f - rustc_interface[a8c97089be6b2131]::passes::start_codegen
  43:     0x75c58f9d651a - <rustc_interface[a8c97089be6b2131]::queries::Queries>::codegen_and_build_linker
  44:     0x75c58f7d88ae - rustc_interface[a8c97089be6b2131]::interface::run_compiler::<core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>, rustc_driver_impl[475ad1987d1f8ff4]::run_compiler::{closure#0}>::{closure#1}
  45:     0x75c58f7c47c9 - std[8dfc48a2846f20c1]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[a8c97089be6b2131]::util::run_in_thread_with_globals<rustc_interface[a8c97089be6b2131]::util::run_in_thread_pool_with_globals<rustc_interface[a8c97089be6b2131]::interface::run_compiler<core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>, rustc_driver_impl[475ad1987d1f8ff4]::run_compiler::{closure#0}>::{closure#1}, core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>>::{closure#0}, core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>>
  46:     0x75c58f7c4576 - <<std[8dfc48a2846f20c1]::thread::Builder>::spawn_unchecked_<rustc_interface[a8c97089be6b2131]::util::run_in_thread_with_globals<rustc_interface[a8c97089be6b2131]::util::run_in_thread_pool_with_globals<rustc_interface[a8c97089be6b2131]::interface::run_compiler<core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>, rustc_driver_impl[475ad1987d1f8ff4]::run_compiler::{closure#0}>::{closure#1}, core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>>::{closure#0}, core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[fcbeababeaec86fe]::result::Result<(), rustc_span[9025529b6308a21f]::ErrorGuaranteed>>::{closure#2} as core[fcbeababeaec86fe]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  47:     0x75c590e9b4db - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h374c54d7ba58fd8d
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/alloc/src/boxed.rs:2022:9
  48:     0x75c590e9b4db - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h55df67e9d227fa0c
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/alloc/src/boxed.rs:2022:9
  49:     0x75c590e9b4db - std::sys::pal::unix::thread::Thread::new::thread_start::hc81f9fd5796eb668
                               at /rustc/b92758a9aef1cef7b79e2b72c3d8ba113e547f89/library/std/src/sys/pal/unix/thread.rs:108:17
  50:     0x75c58a6aa1cf - <unknown>
  51:     0x75c58a72b6ec - <unknown>
  52:                0x0 - <unknown>

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

note: please attach the file at `/home/andrew/astral/uv-ice/rustc-ice-2024-05-21T14_45_20-3821143.txt` to your bug report

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

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

query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `core::ptr::drop_in_place::<pubgrub::internal::partial_solution::PartialSolution<uv_resolver::dependency_provider::UvDependencyProvider>> - shim(Some(pubgrub::internal::partial_solution::PartialSolution<uv_resolver::dependency_provider::UvDependencyProvider>))`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 TraitSelect(b2ffe6aa4d6aa869-fcda8a0c413d1f76)
#1 TraitSelect(63263e15d71e08e3-206c3741085b77d3)
#2 TraitSelect(6a1af11da2f0e187-ff8aaf5459647263)
#3 TraitSelect(70396034be467119-c209d1ef56e52b1b)
#4 TraitSelect(3d32eb9629f97d20-d2caf3eaeedb71d7)
#5 TraitSelect(a67e54cc5c94f375-6312aa96b0e30db)
#6 TraitSelect(5d74d97952e2192c-ed1bafafe8c755d3)
#7 TraitSelect(362c3a049bbeab34-e4ac4a3efd7d86ac)
#8 TraitSelect(4f2c17975a95f7e-ebc2abbb1eb7d60e)
#9 evaluate_obligation(cc97e22fafe75b69-cd605ca39378ed2e)
#10 is_unpin_raw(4e8850f6268054bc-5f22f25f70f74138)
#11 fn_abi_of_instance(b7fc7b91e6594d2a-8133696373d5192b)
end of try_mark_green dep node stack
error: could not compile `uv` (bin "uv")

Unfortunately it's hard to say which version of Rust introduced this error since uv tracks the latest stable version of Rust.

One possible way to narrow this down is that not all changes to the code seem to provoke the ICE. For example, if you checkout 223980e4bc22ec17b4d79b8e5f3f00b38c144c1a, do cargo b -p uv and then checkout 44fe0f6749249a223646baa87f9d7ce40b2e40f3 and build that too, then it works fine. So I wonder if there is something about astral-sh/uv@eac8221 that is provoking the problem.

@BurntSushi BurntSushi 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 May 21, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label May 21, 2024
@compiler-errors compiler-errors added the A-incr-comp Area: Incremental compilation label May 21, 2024
@lqd
Copy link
Member

lqd commented May 21, 2024

astral-sh/uv has an MSRV of 1.77 so I couldn't easily check how old this ICE is or bisect, but it happens on 1.77 as well.

Finally, an incr-comp ICE with a repro <3

@lqd lqd added E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels May 21, 2024
@pacak
Copy link
Contributor

pacak commented Jun 8, 2024

A repro with no external deps:

  1. compile
  2. rename E to E1
  3. compile - panics
pub trait P {
    type A;
}

struct S;

impl P for S {
    type A = C;
}

struct T<D: P>(D::A, Z<D>);

struct Z<D: P>(D::A, String);

impl<D: P> T<D> {
    pub fn i() -> Self {
        loop {}
    }
}

enum C {
    E(()),
}

pub fn m() {
    T::<S>::i();
}

@pacak
Copy link
Contributor

pacak commented Jun 8, 2024

log.txt

@pacak
Copy link
Contributor

pacak commented Jun 8, 2024

@pacak
Copy link
Contributor

pacak commented Jun 8, 2024

rustc 1.80.0-nightly (c987ad5 2024-05-01) still crashes

@pacak
Copy link
Contributor

pacak commented Jun 10, 2024

duplicate of #107226 ?

@bors bors closed this as completed in 1d96de2 Jun 20, 2024
github-actions bot pushed a commit to rust-lang/miri that referenced this issue Jun 21, 2024
Trying to address an incremental compilation issues

This pull request contains two independent changes, one makes it so when `try_force_from_dep_node` fails to recover a query - it marks the node as "red" instead of "green" and the second one makes Debug impl for `DepNode` less panicky if it encounters something from the previous compilation that doesn't map to anything in the current one.

I'm not 100% confident that this is the correct approach, but so far I managed to find a bunch of comments suggesting that some things are allowed to fail in a certain way and changes I made are allowing for those things to fail this way and it fixes all the small reproducers I managed to find.

Compilation panic this pull request avoids is caused by an automatically generated code on an associated type and it is not happening if something else marks it as outdated first (or close like that, but scenario is quite obscure).

Fixes rust-lang/rust#107226
Fixes rust-lang/rust#125367
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. 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

Successfully merging a pull request may close this issue.

5 participants