rust-lang / rust-lang/rust

Deadlocks if a panic happens during LTO while RUSTC_LOG=trace is used

Open
#159,280 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug I-hang needs-triage
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

I can reliably reproduce this using tests/incremental/rustc-rust-log.rs if I add a panic inside rustc_codegen_ssa::back::lto::SerializedModule::from_file, though it probably also happens if a panic happens elsewhere in this code.

Meta

git parse-rev HEAD: 7ef36edc23ac10760eb9f097d32edbab2e1e8928

Backtrace

Thread 6 (Thread 0xe4ccad26bd80 (LWP 2111469) "ctrl-c"):
#0  0x0000e4ccb5661e9c in __futex_abstimed_wait_common64 (private=<optimized out>, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0xe4ccbb548698 <ctrlc::platform::unix::implementation::SEMAPHORE>) at ./nptl/futex-internal.c:57
#1  __futex_abstimed_wait_common (cancel=true, private=<optimized out>, abstime=0x0, clockid=0, expected=0, futex_word=0xe4ccbb548698 <ctrlc::platform::unix::implementation::SEMAPHORE>) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xe4ccbb548698 <ctrlc::platform::unix::implementation::SEMAPHORE>, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>) at ./nptl/futex-internal.c:139
#3  0x0000e4ccb566e230 in do_futex_wait (sem=sem@entry=0xe4ccbb548698 <ctrlc::platform::unix::implementation::SEMAPHORE>, abstime=0x0, clockid=0) at ./nptl/sem_waitcommon.c:111
#4  0x0000e4ccb566e2f0 in __new_sem_wait_slow64 (sem=0xe4ccbb548698 <ctrlc::platform::unix::implementation::SEMAPHORE>, abstime=0x0, clockid=0) at ./nptl/sem_waitcommon.c:183
#5  0x0000e4ccb78f8340 in ctrlc::platform::unix::implementation::sem_wait_forever () at src/platform/unix/mod.rs:29
#6  0x0000e4ccb78f4ed0 in ctrlc::platform::unix::block_ctrl_c () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ctrlc-3.5.1/src/platform/unix/mod.rs:140
#7  ctrlc::set_handler_inner::{closure#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}> () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ctrlc-3.5.1/src/lib.rs:141
#8  std::sys::backtrace::__rust_begin_short_backtrace<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/backtrace.rs:166
#9  0x0000e4ccb78a8f6c in std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure#0}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:70
#10 core::panic::unwind_safe::{impl#25}::call_once<(), std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#11 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#12 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#13 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#14 std::thread::lifecycle::spawn_unchecked::{closure#1}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:68
#15 core::ops::function::FnOnce::call_once<std::thread::lifecycle::spawn_unchecked::{closure_env#1}<ctrlc::set_handler_inner::{closure_env#0}<rustc_driver_impl::install_ctrlc_handler::{closure_env#0}>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
#16 0x0000e4ccbb032eb4 in alloc::boxed::{impl#31}::call_once<(), (dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global> () at library/alloc/src/boxed.rs:2275
#17 std::sys::thread::unix::{impl#2}::new::thread_start () at library/std/src/sys/thread/unix.rs:118
#18 0x0000e4ccb566595c in start_thread (arg=0xe4ccbb550760) at ./nptl/pthread_create.c:447
#19 0x0000e4ccb56cbb4c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76

Thread 5 (Thread 0xe4ccad05bd80 (LWP 2111470) "rustc"):
#0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
#1  0x0000e4ccbb00edec in std::sys::pal::unix::futex::futex_wait () at library/std/src/sys/pal/unix/futex.rs:73
#2  std::sys::sync::mutex::futex::Mutex::lock_contended () at library/std/src/sys/sync/mutex/futex.rs:61
#3  0x0000e4ccbb044b1c in std::sys::sync::mutex::futex::Mutex::lock () at library/std/src/sys/sync/mutex/futex.rs:33
#4  std::sync::reentrant_lock::ReentrantLock::lock<core::cell::RefCell<std::io::stdio::StderrRaw>> () at library/std/src/sync/reentrant_lock.rs:293
#5  std::io::stdio::Stderr::lock () at library/std/src/io/stdio.rs:1002
#6  std::io::stdio::{impl#27}::write_fmt () at library/std/src/io/stdio.rs:1067
#7  0x0000e4ccbb043e58 in std::io::stdio::{impl#26}::write_fmt () at library/std/src/io/stdio.rs:1041
#8  0x0000e4ccb791948c in std::io::impls::{impl#5}::write_fmt<dyn std::io::Write> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/io/impls.rs:228
#9  tracing_tree::format::Buffers::flush_current_buf<alloc::boxed::Box<dyn std::io::Write, alloc::alloc::Global>> () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-tree-0.3.1/src/format.rs:219
#10 0x0000e4ccb790d9cc in tracing_tree::{impl#6}::on_event<tracing_subscriber::registry::sharded::Registry, tracing_subscriber::fmt::writer::BoxMakeWriter, ()> () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-tree-0.3.1/src/lib.rs:621
#11 0x0000e4ccbafefbac in tracing_core::event::Event::dispatch () at src/event.rs:34
#12 0x0000e4ccba8ada98 in rustc_middle::ty::context::{impl#19}::def_path_hash_to_def_id::{closure#0} () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/macros.rs:875
#13 rustc_middle::ty::context::TyCtxt::def_path_hash_to_def_id () at compiler/rustc_middle/src/ty/context.rs:1199
#14 0x0000e4ccba927800 in rustc_middle::dep_graph::dep_node::DepNode::extract_def_id () at compiler/rustc_middle/src/dep_graph/dep_node.rs:348
#15 0x0000e4ccb97115a4 in rustc_middle::dep_graph::dep_node_key::{impl#2}::try_recover_key () at compiler/rustc_middle/src/dep_graph/dep_node_key.rs:84
#16 rustc_query_impl::plumbing::promote_from_disk_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 24]>>> () at compiler/rustc_query_impl/src/plumbing.rs:146
#17 0x0000e4ccb968c294 in rustc_query_impl::dep_kind_vtables::make_dep_kind_vtable_for_query::{closure#1}<rustc_query_impl::query_impl::impl_trait_header::VTableGetter> () at compiler/rustc_query_impl/src/dep_kind_vtables.rs:122
#18 core::ops::function::FnOnce::call_once<rustc_query_impl::dep_kind_vtables::make_dep_kind_vtable_for_query::{closure_env#1}<rustc_query_impl::query_impl::impl_trait_header::VTableGetter>, (rustc_middle::ty::context::TyCtxt, rustc_middle::dep_graph::dep_node::DepNode)> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
--Type <RET> for more, q to quit, c to continue without paging--
#19 0x0000e4ccba941edc in rustc_middle::dep_graph::graph::DepGraph::exec_cache_promotions () at compiler/rustc_middle/src/dep_graph/graph.rs:1071
#20 0x0000e4ccba2b0ce8 in rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure#3}::{closure#0} () at compiler/rustc_incremental/src/persist/save.rs:76
#21 rustc_data_structures::profiling::VerboseTimingGuard::run<(), rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure#3}::{closure_env#0}> () at compiler/rustc_data_structures/src/profiling.rs:845
#22 rustc_session::session::Session::time<(), rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure#3}::{closure_env#0}> () at compiler/rustc_session/src/utils.rs:17
#23 0x0000e4ccba2a2bf0 in rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure#3} () at compiler/rustc_incremental/src/persist/save.rs:60
#24 core::panic::unwind_safe::{impl#25}::call_once<(), rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#25 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#26 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#27 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#28 rustc_data_structures::sync::parallel::ParallelGuard::run<(), rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}> () at compiler/rustc_data_structures/src/sync/parallel.rs:23
#29 rustc_data_structures::sync::parallel::serial_join::{closure#0}<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#2}, rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}, (), ()> () at compiler/rustc_data_structures/src/sync/parallel.rs:53
#30 rustc_data_structures::sync::parallel::parallel_guard<(core::option::Option<()>, core::option::Option<()>), rustc_data_structures::sync::parallel::serial_join::{closure_env#0}<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#2}, rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}, (), ()>> () at compiler/rustc_data_structures/src/sync/parallel.rs:39
#31 rustc_data_structures::sync::parallel::serial_join<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#2}, rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}, (), ()> () at compiler/rustc_data_structures/src/sync/parallel.rs:51
#32 0x0000e4ccba2b01b0 in rustc_data_structures::sync::parallel::par_join<rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#2}, rustc_incremental::persist::save::save_dep_graph::{closure#0}::{closure_env#3}, (), ()> () at compiler/rustc_data_structures/src/sync/parallel.rs:122
#33 rustc_incremental::persist::save::save_dep_graph::{closure#0} () at compiler/rustc_incremental/src/persist/save.rs:45
#34 rustc_middle::ty::context::tls::enter_context::{closure#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()> () at compiler/rustc_middle/src/ty/context/tls.rs:56
#35 std::thread::local::LocalKey::try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/local.rs:462
#36 std::thread::local::LocalKey::with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/local.rs:426
#37 0x0000e4ccba2881f4 in rustc_middle::ty::context::tls::enter_context<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()> () at compiler/rustc_middle/src/ty/context/tls.rs:53
#38 rustc_middle::dep_graph::with_deps::{closure#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()> () at compiler/rustc_middle/src/dep_graph/mod.rs:67
#39 rustc_middle::ty::context::tls::with_context::{closure#0}<rustc_middle::dep_graph::with_deps::{closure_env#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()>, ()> () at compiler/rustc_middle/src/ty/context/tls.rs:86
#40 rustc_middle::ty::context::tls::with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_middle::dep_graph::with_deps::{closure_env#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()>, ()>, ()> () at compiler/rustc_middle/src/ty/context/tls.rs:75
#41 rustc_middle::ty::context::tls::with_context<rustc_middle::dep_graph::with_deps::{closure_env#0}<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()>, ()> () at compiler/rustc_middle/src/ty/context/tls.rs:86
#42 rustc_middle::dep_graph::with_deps<rustc_incremental::persist::save::save_dep_graph::{closure_env#0}, ()> () at compiler/rustc_middle/src/dep_graph/mod.rs:65
#43 0x0000e4ccba256034 in rustc_incremental::persist::save::save_dep_graph () at compiler/rustc_incremental/src/persist/save.rs:27
#44 0x0000e4ccba2b0de8 in rustc_incremental::provide::{closure#0}::{closure#0} () at compiler/rustc_incremental/src/lib.rs:21
#45 rustc_data_structures::profiling::VerboseTimingGuard::run<(), rustc_incremental::provide::{closure#0}::{closure_env#0}> () at compiler/rustc_data_structures/src/profiling.rs:845
#46 rustc_session::session::Session::time<(), rustc_incremental::provide::{closure#0}::{closure_env#0}> () at compiler/rustc_session/src/utils.rs:17
#47 0x0000e4ccba255fec in rustc_incremental::provide::{closure#0} () at compiler/rustc_incremental/src/lib.rs:21
#48 core::ops::function::FnOnce::call_once<rustc_incremental::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt)> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
#49 0x0000e4ccba8b042c in rustc_middle::ty::context::TyCtxt::save_dep_graph () at compiler/rustc_middle/src/hooks/mod.rs:24
#50 rustc_middle::ty::context::TyCtxt::finish () at compiler/rustc_middle/src/ty/context.rs:1611
#51 0x0000e4ccb7862438 in rustc_interface::passes::create_and_enter_global_ctxt::{closure#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}> () at compiler/rustc_interface/src/passes.rs:1049
#52 rustc_middle::ty::context::{impl#15}::enter::{closure#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>> () at compiler/rustc_middle/src/ty/context.rs:803
#53 rustc_middle::ty::context::tls::enter_context::{closure#0}<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>> () at compiler/rustc_middle/src/ty/context/tls.rs:56
#54 std::thread::local::LocalKey::try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/local.rs:462
--Type <RET> for more, q to quit, c to continue without paging--
#55 std::thread::local::LocalKey::with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/local.rs:426
#56 0x0000e4ccb78aca04 in rustc_middle::ty::context::tls::enter_context<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>> () at compiler/rustc_middle/src/ty/context/tls.rs:53
#57 rustc_middle::ty::context::GlobalCtxt::enter<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>> () at compiler/rustc_middle/src/ty/context.rs:803
#58 rustc_middle::ty::context::TyCtxt::create_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>> () at compiler/rustc_middle/src/ty/context.rs:999
#59 0x0000e4ccb7884170 in rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}> () at compiler/rustc_interface/src/passes.rs:997
#60 0x0000e4ccb786050c in rustc_driver_impl::run_compiler::{closure#0} () at compiler/rustc_driver_impl/src/lib.rs:299
#61 rustc_interface::interface::run_compiler::{closure#1}::{closure#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}> () at compiler/rustc_interface/src/interface.rs:496
#62 core::panic::unwind_safe::{impl#25}::call_once<(), rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#63 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#64 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#65 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#66 rustc_interface::interface::run_compiler::{closure#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}> () at compiler/rustc_interface/src/interface.rs:496
#67 rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()> () at compiler/rustc_interface/src/util.rs:206
#68 rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()> () at compiler/rustc_interface/src/util.rs:162
#69 scoped_tls::ScopedKey::set<rustc_span::SessionGlobals, rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()> () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scoped-tls-1.0.1/src/lib.rs:137
#70 0x0000e4ccb7886ef8 in rustc_span::create_session_globals_then<(), rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>> () at compiler/rustc_span/src/lib.rs:155
#71 0x0000e4ccb78f4f68 in rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()> () at compiler/rustc_interface/src/util.rs:158
#72 std::sys::backtrace::__rust_begin_short_backtrace<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/backtrace.rs:166
#73 0x0000e4ccb78a90e0 in std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure#0}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:70
#74 core::panic::unwind_safe::{impl#25}::call_once<(), std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#75 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#76 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#77 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#78 std::thread::lifecycle::spawn_unchecked::{closure#1}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:68
#79 core::ops::function::FnOnce::call_once<std::thread::lifecycle::spawn_unchecked::{closure_env#1}<rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfea--Type <RET> for more, q to quit, c to continue without paging--
e950504faa6f790/library/core/src/ops/function.rs:250
#80 0x0000e4ccbb032eb4 in alloc::boxed::{impl#31}::call_once<(), (dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global> () at library/alloc/src/boxed.rs:2275
#81 std::sys::thread::unix::{impl#2}::new::thread_start () at library/std/src/sys/thread/unix.rs:118
#82 0x0000e4ccb566595c in start_thread (arg=0xe4ccbb550760) at ./nptl/pthread_create.c:447
#83 0x0000e4ccb56cbb4c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76

Thread 4 (Thread 0xe4ccac84bd80 (LWP 2111471) "rustc"):
#0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
#1  0x0000e4ccbb00f434 in std::sys::pal::unix::futex::futex_wait () at library/std/src/sys/pal/unix/futex.rs:73
#2  std::sys::sync::condvar::futex::Condvar::wait_optional_timeout () at library/std/src/sys/sync/condvar/futex.rs:49
#3  std::sys::sync::condvar::futex::Condvar::wait () at library/std/src/sys/sync/condvar/futex.rs:33
#4  0x0000e4ccbafe6db4 in std::sync::poison::condvar::Condvar::wait<jobserver::HelperInner> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sync/poison/condvar.rs:128
#5  0x0000e4ccbafe8ac0 in jobserver::HelperState::for_each_request<jobserver::imp::spawn_helper::{closure#1}::{closure_env#0}> () at src/lib.rs:592
#6  0x0000e4ccbafe7b54 in jobserver::imp::spawn_helper::{closure#1} () at src/unix.rs:403
#7  std::sys::backtrace::__rust_begin_short_backtrace<jobserver::imp::spawn_helper::{closure_env#1}, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/backtrace.rs:166
#8  0x0000e4ccbafe7c78 in std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:70
#9  core::panic::unwind_safe::{impl#25}::call_once<(), std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#10 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#11 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#12 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#13 std::thread::lifecycle::spawn_unchecked::{closure#1}<jobserver::imp::spawn_helper::{closure_env#1}, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:68
#14 core::ops::function::FnOnce::call_once<std::thread::lifecycle::spawn_unchecked::{closure_env#1}<jobserver::imp::spawn_helper::{closure_env#1}, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
#15 0x0000e4ccbb032eb4 in alloc::boxed::{impl#31}::call_once<(), (dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global> () at library/alloc/src/boxed.rs:2275
#16 std::sys::thread::unix::{impl#2}::new::thread_start () at library/std/src/sys/thread/unix.rs:118
#17 0x0000e4ccb566595c in start_thread (arg=0xe4ccad05c4c0) at ./nptl/pthread_create.c:447
#18 0x0000e4ccb56cbb4c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76

Thread 3 (Thread 0xe4cc997ebd80 (LWP 2111473) "coordinator"):
#0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
#1  0x0000e4ccbb00edec in std::sys::pal::unix::futex::futex_wait () at library/std/src/sys/pal/unix/futex.rs:73
#2  std::sys::sync::mutex::futex::Mutex::lock_contended () at library/std/src/sys/sync/mutex/futex.rs:61
#3  0x0000e4ccb7881750 in std::sys::sync::mutex::futex::Mutex::lock () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/sync/mutex/futex.rs:33
#4  std::sync::poison::mutex::Mutex::lock<bool> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sync/poison/mutex.rs:492
#5  0x0000e4ccb790d4b0 in tracing_tree::{impl#6}::on_event<tracing_subscriber::registry::sharded::Registry, tracing_subscriber::fmt::writer::BoxMakeWriter, ()> () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-tree-0.3.1/src/lib.rs:548
#6  0x0000e4ccbafefbac in tracing_core::event::Event::dispatch () at src/event.rs:34
#7  0x0000e4ccbad44860 in rustc_errors::{impl#9}::emit_diagnostic::{closure#3}::{closure#1} () at /home/gh-bjorn3/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/macros.rs:875
#8  rustc_errors::{impl#9}::emit_diagnostic::{closure#3} () at compiler/rustc_errors/src/lib.rs:1344
#9  0x0000e4ccb7aa1f40 in rustc_interface::callbacks::track_diagnostic::{closure#0}<core::option::Option<rustc_span::ErrorGuaranteed>> () at compiler/rustc_interface/src/callbacks.rs:50
#10 rustc_middle::ty::context::tls::with_context_opt<rustc_interface::callbacks::track_diagnostic::{closure_env#0}<core::option::Option<rustc_span::ErrorGuaranteed>>, core::option::Option<rustc_span::ErrorGuaranteed>> () at compiler/rustc_middle/src/ty/context/tls.rs:69
#11 rustc_interface::callbacks::track_diagnostic<core::option::Option<rustc_span::ErrorGuaranteed>> () at compiler/rustc_interface/src/callbacks.rs:41
#12 0x0000e4ccbad494e0 in rustc_errors::DiagCtxtInner::emit_diagnostic () at compiler/rustc_errors/src/lib.rs:1326
#13 0x0000e4ccbad46ab8 in rustc_errors::DiagCtxtHandle::emit_diagnostic () at compiler/rustc_errors/src/lib.rs:868
#14 0x0000e4ccbad60014 in rustc_errors::diagnostic::Diag::emit_producing_error_guaranteed<rustc_span::ErrorGuaranteed> () at compiler/rustc_errors/src/diagnostic.rs:1288
#15 0x0000e4ccb7887d14 in rustc_errors::DiagCtxtHandle::emit_err<rustc_driver_impl::session_diagnostics::Ice> () at compiler/rustc_errors/src/lib.rs:1070
#16 0x0000e4ccb7870f80 in rustc_driver_impl::report_ice () at compiler/rustc_driver_impl/src/lib.rs:1542
#17 0x0000e4ccb789ee6c in rustc_driver_impl::install_ice_hook::{closure#1} () at compiler/rustc_driver_impl/src/lib.rs:1513
#18 alloc::boxed::{impl#33}::call<(&(dyn core::ops::function::Fn<(&std::panic::PanicHookInfo), Output=()> + core::marker::Send + core::marker::Sync), &std::panic::PanicHookInfo), rustc_driver_impl::install_ice_hook::{closure_env#1}, alloc::alloc::Global> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/alloc/src/boxed.rs:2289
#19 0x0000e4ccbb028b20 in alloc::boxed::{impl#33}::call<(&std::panic::PanicHookInfo), (dyn core::ops::function::Fn<(&std::panic::PanicHookInfo), Output=()> + core::marker::Send + core::marker::Sync), alloc::alloc::Global> () at library/alloc/src/boxed.rs:2289
--Type <RET> for more, q to quit, c to continue without paging--
#20 std::panicking::panic_with_hook () at library/std/src/panicking.rs:833
#21 0x0000e4ccbb009e0c in std::panicking::panic_handler::{closure#0} () at library/std/src/panicking.rs:698
#22 0x0000e4ccbb001e54 in std::sys::backtrace::__rust_end_short_backtrace<std::panicking::panic_handler::{closure_env#0}, !> () at library/std/src/sys/backtrace.rs:182
#23 0x0000e4ccbb00b4f4 in std::panicking::panic_handler () at library/std/src/panicking.rs:689
#24 0x0000e4ccbb078284 in core::panicking::panic_fmt () at library/core/src/panicking.rs:80
#25 0x0000e4ccb7b1a978 in rustc_codegen_ssa::back::lto::{impl#1}::from_file::{closure#0}<rustc_codegen_llvm::back::lto::ModuleBuffer> () at compiler/rustc_codegen_ssa/src/back/lto.rs:56
#26 0x0000e4ccb7b1accc in core::result::Result::unwrap_or_else<std::fs::File, std::io::error::Error, rustc_codegen_ssa::back::lto::{impl#1}::from_file::{closure_env#0}<rustc_codegen_llvm::back::lto::ModuleBuffer>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/result.rs:1622
#27 rustc_codegen_ssa::back::lto::SerializedModule::from_file<rustc_codegen_llvm::back::lto::ModuleBuffer> () at compiler/rustc_codegen_ssa/src/back/lto.rs:55
#28 0x0000e4ccb7c53b00 in rustc_codegen_llvm::back::lto::thin_lto () at compiler/rustc_codegen_llvm/src/back/lto.rs:405
#29 rustc_codegen_llvm::back::lto::run_thin () at compiler/rustc_codegen_llvm/src/back/lto.rs:202
#30 0x0000e4ccb7c08880 in rustc_codegen_ssa::back::write::generate_thin_lto_work<rustc_codegen_llvm::LlvmCodegenBackend> () at compiler/rustc_codegen_ssa/src/back/write.rs:374
#31 rustc_codegen_ssa::back::write::do_thin_lto<rustc_codegen_llvm::LlvmCodegenBackend> () at compiler/rustc_codegen_ssa/src/back/write.rs:1027
#32 0x0000e4ccb7b4fd94 in rustc_codegen_ssa::back::write::start_executing_work::{closure#4}<rustc_codegen_llvm::LlvmCodegenBackend> () at compiler/rustc_codegen_ssa/src/back/write.rs:1750
#33 std::sys::backtrace::__rust_begin_short_backtrace<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/backtrace.rs:166
#34 0x0000e4ccb7c7c390 in std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure#0}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:70
#35 core::panic::unwind_safe::{impl#25}::call_once<core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>, std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#36 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>>>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#37 std::panicking::catch_unwind<core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>, core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#38 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>>>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#39 std::thread::lifecycle::spawn_unchecked::{closure#1}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:68
#40 core::ops::function::FnOnce::call_once<std::thread::lifecycle::spawn_unchecked::{closure_env#1}<rustc_codegen_ssa::back::write::start_executing_work::{closure_env#4}<rustc_codegen_llvm::LlvmCodegenBackend>, core::result::Result<rustc_codegen_ssa::back::write::MaybeLtoModules<rustc_codegen_llvm::LlvmCodegenBackend>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
#41 0x0000e4ccbb032eb4 in alloc::boxed::{impl#31}::call_once<(), (dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global> () at library/alloc/src/boxed.rs:2275
#42 std::sys::thread::unix::{impl#2}::new::thread_start () at library/std/src/sys/thread/unix.rs:118
#43 0x0000e4ccb566595c in start_thread (arg=0xe4ccad05c4c0) at ./nptl/pthread_create.c:447
#44 0x0000e4ccb56cbb4c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76

Thread 2 (Thread 0xe4cc999fbd80 (LWP 2111475) "coordinator"):
#0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
#1  0x0000e4ccbb00f434 in std::sys::pal::unix::futex::futex_wait () at library/std/src/sys/pal/unix/futex.rs:73
#2  std::sys::sync::condvar::futex::Condvar::wait_optional_timeout () at library/std/src/sys/sync/condvar/futex.rs:49
#3  std::sys::sync::condvar::futex::Condvar::wait () at library/std/src/sys/sync/condvar/futex.rs:33
#4  0x0000e4ccbafe6db4 in std::sync::poison::condvar::Condvar::wait<jobserver::HelperInner> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sync/poison/condvar.rs:128
#5  0x0000e4ccbafe8ac0 in jobserver::HelperState::for_each_request<jobserver::imp::spawn_helper::{closure#1}::{closure_env#0}> () at src/lib.rs:592
#6  0x0000e4ccbafe7b54 in jobserver::imp::spawn_helper::{closure#1} () at src/unix.rs:403
#7  std::sys::backtrace::__rust_begin_short_backtrace<jobserver::imp::spawn_helper::{closure_env#1}, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/backtrace.rs:166
#8  0x0000e4ccbafe7c78 in std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:70
#9  core::panic::unwind_safe::{impl#25}::call_once<(), std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#10 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#11 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#12 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked::{closure#1}::{closure_env#0}<jobserver::imp::spawn_helper::{closure_env#1}, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
--Type <RET> for more, q to quit, c to continue without paging--
#13 std::thread::lifecycle::spawn_unchecked::{closure#1}<jobserver::imp::spawn_helper::{closure_env#1}, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:68
#14 core::ops::function::FnOnce::call_once<std::thread::lifecycle::spawn_unchecked::{closure_env#1}<jobserver::imp::spawn_helper::{closure_env#1}, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
#15 0x0000e4ccbb032eb4 in alloc::boxed::{impl#31}::call_once<(), (dyn core::ops::function::FnOnce<(), Output=()> + core::marker::Send), alloc::alloc::Global> () at library/alloc/src/boxed.rs:2275
#16 std::sys::thread::unix::{impl#2}::new::thread_start () at library/std/src/sys/thread/unix.rs:118
#17 0x0000e4ccb566595c in start_thread (arg=0xe4cc997ec4c0) at ./nptl/pthread_create.c:447
#18 0x0000e4ccb56cbb4c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76

Thread 1 (Thread 0xe4ccbb550020 (LWP 2111468) "rustc"):
#0  0x0000e4ccb5661e9c in __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=2111470, futex_word=0xe4ccad05be50) at ./nptl/futex-internal.c:57
#1  __futex_abstimed_wait_common (cancel=true, private=128, abstime=0x0, clockid=0, expected=2111470, futex_word=0xe4ccad05be50) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xe4ccad05be50, expected=2111470, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) at ./nptl/futex-internal.c:139
#3  0x0000e4ccb5667348 in __pthread_clockjoin_ex (threadid=251567727295872, thread_return=0x0, clockid=0, abstime=0x0, block=<optimized out>) at ./nptl/pthread_join_common.c:102
#4  0x0000e4ccbb01170c in std::sys::thread::unix::Thread::join () at library/std/src/sys/thread/unix.rs:126
#5  0x0000e4ccb78a9464 in std::thread::lifecycle::JoinInner::join<()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/lifecycle.rs:220
#6  0x0000e4ccb787e974 in std::thread::scoped::ScopedJoinHandle::join<()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/scoped.rs:323
#7  rustc_interface::util::run_in_thread_with_globals::{closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()> () at compiler/rustc_interface/src/util.rs:166
#8  std::thread::scoped::scope::{closure#0}<rustc_interface::util::run_in_thread_with_globals::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/scoped.rs:158
#9  core::panic::unwind_safe::{impl#25}::call_once<(), std::thread::scoped::scope::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#10 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::scoped::scope::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#11 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::scoped::scope::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#12 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::scoped::scope::{closure_env#0}<rustc_interface::util::run_in_thread_with_globals::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#13 std::thread::scoped::scope<rustc_interface::util::run_in_thread_with_globals::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/thread/scoped.rs:158
#14 0x0000e4ccb787d828 in rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()> () at compiler/rustc_interface/src/util.rs:153
#15 rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()> () at compiler/rustc_interface/src/util.rs:197
#16 0x0000e4ccb787ceec in rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure_env#0}> () at compiler/rustc_interface/src/interface.rs:409
#17 0x0000e4ccb7872f70 in rustc_driver_impl::run_compiler () at compiler/rustc_driver_impl/src/lib.rs:230
#18 0x0000e4ccb78f661c in rustc_driver_impl::main::{closure#1} () at compiler/rustc_driver_impl/src/lib.rs:1676
#19 core::panic::unwind_safe::{impl#25}::call_once<(), rustc_driver_impl::main::{closure_env#1}> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/panic/unwind_safe.rs:275
#20 std::panicking::catch_unwind::do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_driver_impl::main::{closure_env#1}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:581
#21 std::panicking::catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_driver_impl::main::{closure_env#1}>> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panicking.rs:544
#22 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_driver_impl::main::{closure_env#1}>, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/panic.rs:359
#23 rustc_span::fatal_error::catch_fatal_errors<rustc_driver_impl::main::{closure_env#1}, ()> () at compiler/rustc_span/src/fatal_error.rs:34
#24 0x0000e4ccb78f6180 in rustc_driver_impl::catch_with_exit_code<(), rustc_driver_impl::main::{closure_env#1}> () at compiler/rustc_driver_impl/src/lib.rs:1378
#25 0x0000e4ccb7877428 in rustc_driver_impl::main () at compiler/rustc_driver_impl/src/lib.rs:1676
#26 0x0000b46b4d6a0a78 in core::ops::function::FnOnce::call_once<fn() -> std::process::ExitCode, ()> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/core/src/ops/function.rs:250
#27 std::sys::backtrace::__rust_begin_short_backtrace<fn() -> std::process::ExitCode, std::process::ExitCode> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/sys/backtrace.rs:166
#28 0x0000b46b4d6a0a60 in std::rt::lang_start::{closure#0}<std::process::ExitCode> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/rt.rs:206
#29 0x0000e4ccbb027184 in core::ops::function::impls::{impl#2}::call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/core/src/ops/function.rs:287
#30 std::panicking::catch_unwind::do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panicking.rs:581
#31 std::panicking::catch_unwind<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/std/src/panicking.rs:544
#32 std::panic::catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panic.rs:359
--Type <RET> for more, q to quit, c to continue without paging--
#33 std::rt::lang_start_internal::{closure#0} () at library/std/src/rt.rs:175
#34 std::panicking::catch_unwind::do_call<std::rt::lang_start_internal::{closure_env#0}, isize> () at library/std/src/panicking.rs:581
#35 std::panicking::catch_unwind<isize, std::rt::lang_start_internal::{closure_env#0}> () at library/std/src/panicking.rs:544
#36 std::panic::catch_unwind<std::rt::lang_start_internal::{closure_env#0}, isize> () at library/std/src/panic.rs:359
#37 std::rt::lang_start_internal () at library/std/src/rt.rs:171
#38 0x0000b46b4d6a0a44 in std::rt::lang_start<std::process::ExitCode> () at /rustc/0417c25868d6dfbd1c291dfeae950504faa6f790/library/std/src/rt.rs:205
#39 0x0000b46b4d6a0ac0 in main ()
#40 0x0000e4ccb56084c4 in __libc_start_call_main (main=main@entry=0xb46b4d6a0a90 <main>, argc=argc@entry=48, argv=argv@entry=0xffffd9ab3bc8) at ../sysdeps/nptl/libc_start_call_main.h:58
#41 0x0000e4ccb5608598 in __libc_start_main_impl (main=0xb46b4d6a0a90 <main>, argc=48, argv=0xffffd9ab3bc8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:360
#42 0x0000b46b4d6a0930 in _start ()

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with tests/incremental/rustc-rust-log.rs and reproduce the issue with RUSTC_LOG=trace and a panic in rustc_codegen_ssa:🔙:lto::SerializedModule::from_file. Trace the panic and logging paths shown by the backtrace, then verify that the compiler does not deadlock when the panic occurs during LTO.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.