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

parallel compiler: panic output and compiler warnings are interleaved #119789

Closed
matthiaskrgr opened this issue Jan 9, 2024 · 1 comment · Fixed by #122218
Closed

parallel compiler: panic output and compiler warnings are interleaved #119789

matthiaskrgr opened this issue Jan 9, 2024 · 1 comment · Fixed by #122218
Labels
C-bug Category: This is a bug. WG-compiler-parallel Working group: Parallelizing the compiler

Comments

@matthiaskrgr
Copy link
Member

warning: the feature `rustc_attrs` is internal to the compiler or standard library
 --> /tmp/glacier2/pile/F40DCAD92D63A31833DFDD34A9C6A7CC561B1F370CA6436C0A30123FEAFDA367.rs:6:12
  |
6 | #![feature(rustc_attrs)]
  |            ^^^^^^^^^^^
  |
  = note: using it is strongly discouraged
  = note: `#[warn(internal_features)]` on by default

thread 'rustc' panicked at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/compiler/rustc_abi/src/layout.rs:410:17:
257 > 255
stack backtrace:
warning: struct `Foo` is never constructed
 --> /tmp/glacier2/pile/F40DCAD92D63A31833DFDD34A9C6A7CC561B1F370CA6436C0A30123FEAFDA367.rs:9:8
  |
9 | struct Foo(i8);
  |        ^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: constant `FOO` is never used
  --> /tmp/glacier2/pile/F40DCAD92D63A31833DFDD34A9C6A7CC561B1F370CA6436C0A30123FEAFDA367.rs:13:7
   |
13 | const FOO: Foo = unsafe { Foo(1) };
   |       ^^^

warning: function `Ref` is never used
  --> /tmp/glacier2/pile/F40DCAD92D63A31833DFDD34A9C6A7CC561B1F370CA6436C0A30123FEAFDA367.rs:15:4
   |
15 | fn Ref() {}
   |    ^^^

   0:     0x7f60a0f8c7e6 - std::backtrace_rs::backtrace::libunwind::trace::h92488e4bb2264071
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x7f60a0f8c7e6 - std::backtrace_rs::backtrace::trace_unsynchronized::h97e02be157039c96
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f60a0f8c7e6 - std::sys_common::backtrace::_print_fmt::h89a2b01cb3c33339
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7f60a0f8c7e6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::ha79772b33774e7af
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f60a0fdeed0 - core::fmt::rt::Argument::fmt::h6d2228239beb9437
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/core/src/fmt/rt.rs:142:9
   5:     0x7f60a0fdeed0 - core::fmt::write::h9bcb8c2e898ce4b2
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/core/src/fmt/mod.rs:1120:17
   6:     0x7f60a0f801df - std::io::Write::write_fmt::he7ba80727a5f8d75
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/io/mod.rs:1810:15
   7:     0x7f60a0f8c5c4 - std::sys_common::backtrace::_print::h9bd2ce6833902b42
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f60a0f8c5c4 - std::sys_common::backtrace::print::h09be6e715f2e0cc6
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f60a0f8f357 - std::panicking::default_hook::{{closure}}::h81ac1ebc9ea0357f
  10:     0x7f60a0f8f0b9 - std::panicking::default_hook::hfc7d2f2254fbbaf6
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/panicking.rs:292:9
  11:     0x7f60a3d4e03c - std[e13db6861558cd66]::panicking::update_hook::<alloc[74e4b4cff019550b]::boxed::Box<rustc_driver_impl[f3f951fd75793e59]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7f60a0f8faa6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h864b8f962a42f35c
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/alloc/src/boxed.rs:2030:9
  13:     0x7f60a0f8faa6 - std::panicking::rust_panic_with_hook::he5915ec9da668475
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/panicking.rs:783:13
  14:     0x7f60a0f8f7f2 - std::panicking::begin_panic_handler::{{closure}}::h8912c4af58ae3d2d
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/panicking.rs:657:13
  15:     0x7f60a0f8cce6 - std::sys_common::backtrace::__rust_end_short_backtrace::hfbc35781d5527627
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7f60a0f8f550 - rust_begin_unwind
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/panicking.rs:645:5
  17:     0x7f60a0fdb5d5 - core::panicking::panic_fmt::hc3a8fce14bfb5d21
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/core/src/panicking.rs:72:14
  18:     0x7f60a5792d85 - rustc_ty_utils[21da8a968006a7ee]::layout::layout_of_uncached
  19:     0x7f60a57877d2 - rustc_ty_utils[21da8a968006a7ee]::layout::layout_of
  20:     0x7f60a5787751 - rustc_query_impl[ea3ef81316e32b43]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ea3ef81316e32b43]::query_impl::layout_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 16usize]>>
  21:     0x7f60a5786a7a - rustc_query_system[60e151975146506c]::query::plumbing::try_execute_query::<rustc_query_impl[ea3ef81316e32b43]::DynamicConfig<rustc_query_system[60e151975146506c]::query::caches::DefaultCache<rustc_middle[f3f21a744f51ef87]::ty::ParamEnvAnd<rustc_middle[f3f21a744f51ef87]::ty::Ty>, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 16usize]>>, false, true, false>, rustc_query_impl[ea3ef81316e32b43]::plumbing::QueryCtxt, false>
  22:     0x7f60a57866f8 - rustc_query_impl[ea3ef81316e32b43]::query_impl::layout_of::get_query_non_incr::__rust_end_short_backtrace
  23:     0x7f60a5503efa - rustc_middle[f3f21a744f51ef87]::query::plumbing::query_get_at::<rustc_query_system[60e151975146506c]::query::caches::DefaultCache<rustc_middle[f3f21a744f51ef87]::ty::ParamEnvAnd<rustc_middle[f3f21a744f51ef87]::ty::Ty>, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 16usize]>>>
  24:     0x7f60a5db7454 - rustc_const_eval[5bc80446137b6c36]::const_eval::eval_queries::eval_body_using_ecx
  25:     0x7f60a5db5401 - rustc_const_eval[5bc80446137b6c36]::const_eval::eval_queries::eval_in_interpreter
  26:     0x7f60a5db4fee - rustc_const_eval[5bc80446137b6c36]::const_eval::eval_queries::eval_to_allocation_raw_provider
  27:     0x7f60a5db4e76 - rustc_query_impl[ea3ef81316e32b43]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ea3ef81316e32b43]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 24usize]>>
  28:     0x7f60a5db3d4b - rustc_query_system[60e151975146506c]::query::plumbing::try_execute_query::<rustc_query_impl[ea3ef81316e32b43]::DynamicConfig<rustc_query_system[60e151975146506c]::query::caches::DefaultCache<rustc_middle[f3f21a744f51ef87]::ty::ParamEnvAnd<rustc_middle[f3f21a744f51ef87]::mir::interpret::GlobalId>, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[ea3ef81316e32b43]::plumbing::QueryCtxt, false>
  29:     0x7f60a5db3730 - rustc_query_impl[ea3ef81316e32b43]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace
  30:     0x7f60a3339e68 - rustc_const_eval[5bc80446137b6c36]::const_eval::eval_queries::eval_to_const_value_raw_provider
  31:     0x7f60a5db44ce - rustc_query_impl[ea3ef81316e32b43]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ea3ef81316e32b43]::query_impl::eval_to_const_value_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 24usize]>>
  32:     0x7f60a5db3c11 - rustc_query_system[60e151975146506c]::query::plumbing::try_execute_query::<rustc_query_impl[ea3ef81316e32b43]::DynamicConfig<rustc_query_system[60e151975146506c]::query::caches::DefaultCache<rustc_middle[f3f21a744f51ef87]::ty::ParamEnvAnd<rustc_middle[f3f21a744f51ef87]::mir::interpret::GlobalId>, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[ea3ef81316e32b43]::plumbing::QueryCtxt, false>
  33:     0x7f60a5db3830 - rustc_query_impl[ea3ef81316e32b43]::query_impl::eval_to_const_value_raw::get_query_non_incr::__rust_end_short_backtrace
  34:     0x7f60a333a58a - rustc_const_eval[5bc80446137b6c36]::const_eval::eval_queries::eval_to_const_value_raw_provider
  35:     0x7f60a5db44ce - rustc_query_impl[ea3ef81316e32b43]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ea3ef81316e32b43]::query_impl::eval_to_const_value_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 24usize]>>
  36:     0x7f60a5db3c11 - rustc_query_system[60e151975146506c]::query::plumbing::try_execute_query::<rustc_query_impl[ea3ef81316e32b43]::DynamicConfig<rustc_query_system[60e151975146506c]::query::caches::DefaultCache<rustc_middle[f3f21a744f51ef87]::ty::ParamEnvAnd<rustc_middle[f3f21a744f51ef87]::mir::interpret::GlobalId>, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[ea3ef81316e32b43]::plumbing::QueryCtxt, false>
  37:     0x7f60a5db3830 - rustc_query_impl[ea3ef81316e32b43]::query_impl::eval_to_const_value_raw::get_query_non_incr::__rust_end_short_backtrace
  38:     0x7f60a577ffee - <rustc_middle[f3f21a744f51ef87]::query::plumbing::TyCtxtEnsure>::const_eval_poly
  39:     0x7f60a5773826 - <rustc_lint[aceebb161845a5da]::BuiltinCombinedModuleLateLintPass as rustc_lint[aceebb161845a5da]::passes::LateLintPass>::check_item
  40:     0x7f60a53d44a1 - <rustc_lint[aceebb161845a5da]::late::LateContextAndPass<rustc_lint[aceebb161845a5da]::BuiltinCombinedModuleLateLintPass> as rustc_hir[bb37b1f91ca307a0]::intravisit::Visitor>::visit_nested_item
  41:     0x7f60a53d3d72 - rustc_lint[aceebb161845a5da]::lint_mod
  42:     0x7f60a53d3ae9 - rustc_query_impl[ea3ef81316e32b43]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ea3ef81316e32b43]::query_impl::lint_mod::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 0usize]>>
  43:     0x7f60a5c3080f - rustc_query_system[60e151975146506c]::query::plumbing::try_execute_query::<rustc_query_impl[ea3ef81316e32b43]::DynamicConfig<rustc_query_system[60e151975146506c]::query::caches::DefaultCache<rustc_span[b49aba93e0aaec5a]::def_id::LocalModDefId, rustc_middle[f3f21a744f51ef87]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[ea3ef81316e32b43]::plumbing::QueryCtxt, false>
  44:     0x7f60a5c2ef03 - rustc_query_impl[ea3ef81316e32b43]::query_impl::lint_mod::get_query_non_incr::__rust_end_short_backtrace
  45:     0x7f60a40aeb9d - rayon[803db88657665571]::iter::plumbing::bridge_producer_consumer::helper::<rayon[803db88657665571]::slice::IterProducer<rustc_hir[bb37b1f91ca307a0]::hir_id::OwnerId>, rayon[803db88657665571]::iter::for_each::ForEachConsumer<rustc_data_structures[b3be3651cdae3ab9]::sync::parallel::enabled::par_for_each_in<&rustc_hir[bb37b1f91ca307a0]::hir_id::OwnerId, &[rustc_hir[bb37b1f91ca307a0]::hir_id::OwnerId], <rustc_middle[f3f21a744f51ef87]::hir::map::Map>::par_for_each_module<rustc_lint[aceebb161845a5da]::late::check_crate::{closure#1}::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>
  46:     0x7f60a5c2ecb9 - rustc_lint[aceebb161845a5da]::late::check_crate::{closure#1}
  47:     0x7f60a40b5f37 - rayon_core[f6201257676286fc]::join::join_context::call_b::<core[6f83431ac1278f74]::option::Option<rustc_data_structures[b3be3651cdae3ab9]::marker::FromDyn<()>>, rayon_core[f6201257676286fc]::join::join::call<core[6f83431ac1278f74]::option::Option<rustc_data_structures[b3be3651cdae3ab9]::marker::FromDyn<()>>, rustc_data_structures[b3be3651cdae3ab9]::sync::parallel::enabled::join<rustc_lint[aceebb161845a5da]::late::check_crate::{closure#0}, rustc_lint[aceebb161845a5da]::late::check_crate::{closure#1}, (), ()>::{closure#0}::{closure#1}>::{closure#0}>::{closure#0}
  48:     0x7f60a40b595b - rayon_core[f6201257676286fc]::join::join_context::<rayon_core[f6201257676286fc]::join::join::call<core[6f83431ac1278f74]::option::Option<rustc_data_structures[b3be3651cdae3ab9]::marker::FromDyn<()>>, rustc_data_structures[b3be3651cdae3ab9]::sync::parallel::enabled::join<rustc_lint[aceebb161845a5da]::late::check_crate::{closure#0}, rustc_lint[aceebb161845a5da]::late::check_crate::{closure#1}, (), ()>::{closure#0}::{closure#0}>::{closure#0}, rayon_core[f6201257676286fc]::join::join::call<core[6f83431ac1278f74]::option::Option<rustc_data_structures[b3be3651cdae3ab9]::marker::FromDyn<()>>, rustc_data_structures[b3be3651cdae3ab9]::sync::parallel::enabled::join<rustc_lint[aceebb161845a5da]::late::check_crate::{closure#0}, rustc_lint[aceebb161845a5da]::late::check_crate::{closure#1}, (), ()>::{closure#0}::{closure#1}>::{closure#0}, core[6f83431ac1278f74]::option::Option<rustc_data_structures[b3be3651cdae3ab9]::marker::FromDyn<()>>, core[6f83431ac1278f74]::option::Option<rustc_data_structures[b3be3651cdae3ab9]::marker::FromDyn<()>>>::{closure#0}
  49:     0x7f60a5c2e514 - rustc_lint[aceebb161845a5da]::late::check_crate
  50:     0x7f60a408565a - <rayon_core[f6201257676286fc]::job::HeapJob<<rayon_core[f6201257676286fc]::scope::Scope>::spawn<rustc_interface[1dfaeeba2be2315d]::passes::analysis::{closure#6}::{closure#2}::{closure#0}::{closure#2}::{closure#1}::{closure#0}::{closure#3}>::{closure#0}> as rayon_core[f6201257676286fc]::job::Job>::execute
  51:     0x7f60a3957c75 - <rayon_core[f6201257676286fc]::registry::WorkerThread>::wait_until_cold
  52:     0x7f60a3954723 - <rayon_core[f6201257676286fc]::registry::ThreadBuilder>::run
  53:     0x7f60a3d4fd67 - <<crossbeam_utils[f8f63e1b9ece28c6]::thread::ScopedThreadBuilder>::spawn<<rayon_core[f6201257676286fc]::ThreadPoolBuilder>::build_scoped<rustc_interface[1dfaeeba2be2315d]::util::run_in_thread_pool_with_globals<rustc_interface[1dfaeeba2be2315d]::interface::run_compiler<core[6f83431ac1278f74]::result::Result<(), rustc_span[b49aba93e0aaec5a]::ErrorGuaranteed>, rustc_driver_impl[f3f951fd75793e59]::run_compiler::{closure#0}>::{closure#0}, core[6f83431ac1278f74]::result::Result<(), rustc_span[b49aba93e0aaec5a]::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}, rustc_interface[1dfaeeba2be2315d]::util::run_in_thread_pool_with_globals<rustc_interface[1dfaeeba2be2315d]::interface::run_compiler<core[6f83431ac1278f74]::result::Result<(), rustc_span[b49aba93e0aaec5a]::ErrorGuaranteed>, rustc_driver_impl[f3f951fd75793e59]::run_compiler::{closure#0}>::{closure#0}, core[6f83431ac1278f74]::result::Result<(), rustc_span[b49aba93e0aaec5a]::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#1}, core[6f83431ac1278f74]::result::Result<(), rustc_span[b49aba93e0aaec5a]::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#0} as core[6f83431ac1278f74]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  54:     0x7f60a3d4929e - std[e13db6861558cd66]::sys_common::backtrace::__rust_begin_short_backtrace::<alloc[74e4b4cff019550b]::boxed::Box<dyn core[6f83431ac1278f74]::ops::function::FnOnce<(), Output = ()> + core[6f83431ac1278f74]::marker::Send>, ()>
  55:     0x7f60a3d4fa03 - <<std[e13db6861558cd66]::thread::Builder>::spawn_unchecked_<alloc[74e4b4cff019550b]::boxed::Box<dyn core[6f83431ac1278f74]::ops::function::FnOnce<(), Output = ()> + core[6f83431ac1278f74]::marker::Send>, ()>::{closure#1} as core[6f83431ac1278f74]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  56:     0x7f60a0f999d5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb53ed9031b4e247a
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/alloc/src/boxed.rs:2016:9
  57:     0x7f60a0f999d5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hfb9a49e9b795584d
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/alloc/src/boxed.rs:2016:9
  58:     0x7f60a0f999d5 - std::sys::unix::thread::Thread::new::thread_start::h4db5c6ec45610220
                               at /rustc/ca663b06c5492ac2dde5e53cd11579fa8e4d68bd/library/std/src/sys/unix/thread.rs:108:17
  59:     0x7f60a0d859eb - <unknown>
  60:     0x7f60a0e097cc - <unknown>
  61:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: please attach the file at `/home/matthias/vcs/github/icemaker/rustc-ice-2024-01-09T23_43_35-1857206.txt` to your bug report

note: compiler flags: --crate-type lib -Z threads=16

query stack during panic:
#0 [layout_of] computing layout of `Foo`
#1 [eval_to_allocation_raw] const-evaluating + checking `FOO`
#2 [eval_to_const_value_raw] simplifying constant for the type system `FOO`
#3 [eval_to_const_value_raw] simplifying constant for the type system `FOO`
#4 [lint_mod] linting top-level module
#5 [analysis] running analysis passes on this crate
end of query stack
warning: 4 warnings emitted

is it possible to somehow separate these or just kill all other threads as soon as one panics? 🤔

@matthiaskrgr matthiaskrgr added C-bug Category: This is a bug. WG-compiler-parallel Working group: Parallelizing the compiler labels Jan 9, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 9, 2024
@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 10, 2024
@Zoxc
Copy link
Contributor

Zoxc commented Mar 9, 2024

This is an issue with the standard library and I think we need an re-entrant Stderr::lock to deal with it.

@bors bors closed this as completed in 7de1a1f Mar 12, 2024
github-actions bot pushed a commit to rust-lang/miri that referenced this issue Mar 14, 2024
lnicola pushed a commit to lnicola/rust-analyzer that referenced this issue Apr 7, 2024
RalfJung pushed a commit to RalfJung/rust-analyzer that referenced this issue Apr 27, 2024
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. WG-compiler-parallel Working group: Parallelizing the compiler
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants