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

Fix potential use-after-free in when_all_vector #966

Merged

Conversation

msimberg
Copy link
Contributor

@msimberg msimberg commented Jan 15, 2024

If the call to the last child operation state of when_all_vector actually releases the when_all_vector operation state, the access to the number of predecessors from the when_all_vector operation state will be on freed memory. This PR reads the number into a stack-local variable before starting the child operation states and introduces a test that triggers the failure without the fix.

@msimberg msimberg self-assigned this Jan 15, 2024
@msimberg msimberg added this to the 0.22.0 milestone Jan 15, 2024
@msimberg msimberg marked this pull request as ready for review January 15, 2024 15:06
@msimberg msimberg force-pushed the when-all-vector-fix-num-predecessors-access branch from a9094a6 to 7118873 Compare January 15, 2024 15:07
@msimberg
Copy link
Contributor Author

The valgrind CI configuration shows the following error now, confirming that the new test triggers the failure:

==2927== Memcheck, a memory error detector
==2927== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2927== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==2927== Command: /__w/pika/pika/build/bin/algorithm_when_all_vector_test --pika:threads=4
==2927== 
hwloc x86 backend cannot work under Valgrind, disabling.
May be reenabled by dumping CPUIDs with hwloc-gather-cpuid
and reloading them under Valgrind with HWLOC_CPUID_PATH.
==2927== Invalid read of size 8
==2927==    at 0x1AFC85: pika::when_all_vector_detail::tag_invoke(pika::execution::experimental::start_t, pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type::operation_state<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver>&) (libs/pika/execution/include/pika/execution/algorithms/when_all_vector.hpp:341)
==2927==    by 0x1AE2F1: operator()<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type::operation_state<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver> &, void> (libs/pika/tag_invoke/include/pika/functional/tag_invoke.hpp:221)
==2927==    by 0x1AE2F1: pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, void>(pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type&&, std::allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > > const&) (libs/pika/execution/include/pika/execution/algorithms/start_detached.hpp:94)
==2927==    by 0x162F9A: tag_fallback_invoke<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int>, 42, 0> (libs/pika/execution/include/pika/execution/algorithms/start_detached.hpp:141)
==2927==    by 0x162F9A: operator()<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, void> (libs/pika/tag_invoke/include/pika/functional/detail/tag_fallback_invoke.hpp:265)
==2927==    by 0x162F9A: main (libs/pika/execution/tests/unit/algorithm_when_all_vector.cpp:225)
==2927==  Address 0x55d7380 is 16 bytes inside a block of size 104 free'd
==2927==    at 0x484B8AF: operator delete(void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==2927==    by 0x1AF7EC: __gnu_cxx::new_allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > >::deallocate(pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >*, unsigned long) (new_allocator.h:145)
==2927==    by 0x1AF724: std::allocator_traits<std::allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > > >::deallocate(std::allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > >&, pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >*, unsigned long) (alloc_traits.h:496)
==2927==    by 0x1AF5B2: pika::start_detached_detail::intrusive_ptr_release(pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >*) (libs/pika/execution/include/pika/execution/algorithms/start_detached.hpp:106)
==2927==    by 0x1AF539: pika::memory::intrusive_ptr<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > >::~intrusive_ptr() (libs/pika/memory/include/pika/memory/intrusive_ptr.hpp:82)
==2927==    by 0x1AF4B2: pika::memory::intrusive_ptr<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > >::reset() (libs/pika/memory/include/pika/memory/intrusive_ptr.hpp:136)
==2927==    by 0x1AF468: void pika::start_detached_detail::tag_invoke<std::vector<int, std::allocator<int> > >(pika::execution::experimental::set_value_t, pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver&&, std::vector<int, std::allocator<int> >&&) (libs/pika/execution/include/pika/execution/algorithms/start_detached.hpp:71)
==2927==    by 0x1AF2B5: operator()<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver, std::vector<int, std::allocator<int> > > (libs/pika/tag_invoke/include/pika/functional/tag_invoke.hpp:208)
==2927==    by 0x1AF2B5: pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type::operation_state<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver>::finish() (libs/pika/execution/include/pika/execution/algorithms/when_all_vector.hpp:287)
==2927==    by 0x1AF167: void pika::when_all_vector_detail::tag_invoke<int>(pika::execution::experimental::set_value_t, pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type::operation_state<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver>::when_all_vector_receiver&&, int&&) (libs/pika/execution/include/pika/execution/algorithms/when_all_vector.hpp:205)
==2927==    by 0x1AF07A: operator()<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type::operation_state<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver>::when_all_vector_receiver, int> (libs/pika/tag_invoke/include/pika/functional/tag_invoke.hpp:208)
==2927==    by 0x1AF07A: pika::execution::experimental::detail::any_receiver_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type::operation_state<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> >::start_detached_receiver>::when_all_vector_receiver, int>::set_value(int) && (libs/pika/execution_base/include/pika/execution_base/any_sender.hpp:490)
==2927==    by 0x1B998C: decltype ((((std::declval<pika::execution::experimental::detail::any_receiver_base<int> >)()).set_value)((static_cast<decltype ({parm#3})>({parm#3}))...)) pika::execution::experimental::detail::tag_invoke<int>(pika::execution::experimental::set_value_t, pika::execution::experimental::detail::any_receiver<int>&&, int&&) (libs/pika/execution_base/include/pika/execution_base/any_sender.hpp:550)
==2927==    by 0x1B98E6: operator()<pika::execution::experimental::detail::any_receiver<int>, int> (libs/pika/tag_invoke/include/pika/functional/tag_invoke.hpp:208)
==2927==    by 0x1B98E6: pika::just_detail::tag_invoke(pika::execution::experimental::start_t, pika::just_detail::just_sender_impl<pika::util::detail::pack_c<unsigned long, 0ul>, int>::just_sender_type::operation_state<pika::execution::experimental::detail::any_receiver<int> >&)::{lambda()#1}::operator()() const (libs/pika/execution/include/pika/execution/algorithms/just.hpp:89)
==2927==  Block was alloc'd at
==2927==    at 0x4849013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==2927==    by 0x1AE48C: __gnu_cxx::new_allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > >::allocate(unsigned long, void const*) (new_allocator.h:127)
==2927==    by 0x1AE140: std::allocator_traits<std::allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > > >::allocate(std::allocator<pika::start_detached_detail::operation_state_holder<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int> > >&, unsigned long) (alloc_traits.h:464)
==2927==    by 0x162F1E: tag_fallback_invoke<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, std::allocator<int>, 42, 0> (libs/pika/execution/include/pika/execution/algorithms/start_detached.hpp:138)
==2927==    by 0x162F1E: operator()<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<int> >::when_all_vector_sender_type, void> (libs/pika/tag_invoke/include/pika/functional/detail/tag_fallback_invoke.hpp:265)
==2927==    by 0x162F1E: main (libs/pika/execution/tests/unit/algorithm_when_all_vector.cpp:225)
==2927== 

Address sanitizer is a bit more verbose and shows what allocated and freed the block that is being accessed after the free:

=================================================================
==2218680==ERROR: AddressSanitizer: heap-use-after-free on address 0x6110036489a8 at pc 0x7f7d537ced25 bp 0x7f7d47d8f6e0 sp 0x7f7d47d8f6d8
READ of size 8 at 0x6110036489a8 thread T1
    #0 0x7f7d537ced24 in pika::when_all_vector_detail::tag_invoke(pika::execution::experimental::start_t, pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type::operation_state<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::predecessor_sender_receiver>&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/when_all_vector.hpp:341
    #1 0x7f7d537ced24 in _ZNK4pika10functional6detail11tag_base_ns12tag_noexceptINS_9execution12experimental7start_tEEclIJRNS_22when_all_vector_detail27when_all_vector_sender_implINS5_17unique_any_senderIJN4dlaf6matrix4TileIlLNSC_6DeviceE0EEEEEEE27when_all_vector_sender_type15operation_stateINS_20schedule_from_detail25schedule_from_sender_implISJ_NS5_21thread_pool_schedulerEE25schedule_from_sender_type15operation_stateINS_11then_detail18then_receiver_implINS_20drop_op_state_detail27drop_op_state_receiver_implINST_27drop_op_state_op_state_implINSR_16then_sender_implISP_NSC_6common8internal14ConsumeRvaluesINSY_10UnwrappingIZNSC_11eigensolver8internal8addIndexElllRNSD_6MatrixIlLSF_0EEEEUlRKT_E_EEEEE16then_sender_typeENS_21start_detached_detail22operation_state_holderINST_25drop_op_state_sender_implIS1D_E25drop_op_state_sender_typeESaIiEE23start_detached_receiverEE27drop_op_state_op_state_typeEE27drop_op_state_receiver_typeES1B_E18then_receiver_typeEE27predecessor_sender_receiverEEEEvEENS1_17tag_invoke_resultIKNS1_15tag_invoke_t_ns12tag_invoke_tEJS6_DpDtfp_EEE4typeEDpOT_ /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:221
    #2 0x7f7d537ced24 in pika::schedule_from_detail::tag_invoke(pika::execution::experimental::start_t, pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/schedule_from.hpp:300
    #3 0x7f7d537ced24 in pika::functional::detail::tag_invoke_result<pika::functional::detail::tag_invoke_t_ns::tag_invoke_t const, pika::execution::experimental::start_t, (decltype ({parm#1}))...>::type pika::functional::detail::tag_base_ns::tag_noexcept<pika::execution::experimental::start_t>::operator()<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&, void>(pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:221
    #4 0x7f7d537ced24 in pika::drop_op_state_detail::tag_invoke(pika::execution::experimental::start_t, pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/drop_operation_state.hpp:149
    #5 0x7f7d537ced24 in pika::functional::detail::tag_invoke_result<pika::functional::detail::tag_invoke_t_ns::tag_invoke_t const, pika::execution::experimental::start_t, (decltype ({parm#1}))...>::type pika::functional::detail::tag_base_ns::tag_noexcept<pika::execution::experimental::start_t>::operator()<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type&, void>(pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:221
    #6 0x7f7d537ced24 in pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, void>(pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&, std::allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > > const&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/start_detached.hpp:94
    #7 0x7f7d537f3dfc in void pika::execution::experimental::tag_fallback_invoke<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int>, 42, 0>(pika::execution::experimental::start_detached_t, pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&, std::allocator<int> const&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/start_detached.hpp:141
    #8 0x7f7d537f3dfc in pika::functional::detail::tag_fallback_invoke_result<pika::functional::detail::tag_fallback_invoke_t_ns::tag_fallback_invoke_t const, pika::execution::experimental::start_detached_t, pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&>::type pika::functional::detail::tag_base_ns::tag_fallback<pika::execution::experimental::start_detached_t>::operator()<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, void>(pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/detail/tag_fallback_invoke.hpp:265
    #9 0x7f7d537f3dfc in dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver/index_manipulation.h:78
    #10 0x7f7d53a1ab18 in void dlaf::eigensolver::internal::mergeDistSubproblems<(dlaf::Backend)0, float, (dlaf::Device)0, pika::split_detail::split_sender_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_impl::when_all_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> >, pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> > >::when_all_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::cuppensDecomp_t> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::ensure_started_sender_type, std::allocator<int> >::split_sender_type&>(dlaf::comm::CommunicatorPipeline<(dlaf::comm::CommunicatorType)2>&, dlaf::comm::CommunicatorPipeline<(dlaf::comm::CommunicatorType)0>&, dlaf::comm::CommunicatorPipeline<(dlaf::comm::CommunicatorType)1>&, long, long, long, pika::split_detail::split_sender_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_impl::when_all_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> >, pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> > >::when_all_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::cuppensDecomp_t> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::ensure_started_sender_type, std::allocator<int> >::split_sender_type&, dlaf::eigensolver::internal::WorkSpace<float, (dlaf::Device)0>&, dlaf::eigensolver::internal::WorkSpaceHost<float>&, dlaf::eigensolver::internal::DistWorkSpaceHostMirror<float, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver/merge.h:1838
    #11 0x7f7d53a1fc97 in dlaf::eigensolver::internal::TridiagSolver<(dlaf::Backend)0, (dlaf::Device)0, float>::call(dlaf::comm::CommunicatorGrid&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver/impl.h:425
    #12 0x4aeb2f in void dlaf::eigensolver::internal::tridiagonal_eigensolver<(dlaf::Backend)0, (dlaf::Device)0, float>(dlaf::comm::CommunicatorGrid&, dlaf::matrix::Matrix<dlaf::TypeInfo<float>::BaseType, (dlaf::Device)0>&, dlaf::matrix::Matrix<dlaf::TypeInfo<float>::BaseType, (dlaf::Device)0>&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver.h:124
    #13 0x547a2b in void solveRandomTridiagMatrix<(dlaf::Backend)0, (dlaf::Device)0, float>(dlaf::comm::CommunicatorGrid&, long, long) /home/mjs/src/DLA-Future/test/unit/eigensolver/test_tridiag_solver_distributed.cpp:268
    #14 0x548aa6 in TridiagSolverDistTestMC_Random_Test<float>::TestBody() /home/mjs/src/DLA-Future/test/unit/eigensolver/test_tridiag_solver_distributed.cpp:308
    #15 0x7f7d54fad792 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2621
    #16 0x7f7d54fad792 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2657
    #17 0x7f7d54f6c1aa in testing::Test::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2696
    #18 0x7f7d54f6c1aa in testing::Test::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2686
    #19 0x7f7d54f6c886 in testing::TestInfo::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2845
    #20 0x7f7d54f6d0ac in testing::TestSuite::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:3004
    #21 0x7f7d54f8be1a in testing::internal::UnitTestImpl::RunAllTests() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:5890
    #22 0x7f7d54fae642 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2621
    #23 0x7f7d54fae642 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2657
    #24 0x7f7d54f6d3ae in testing::UnitTest::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:5455
    #25 0x562a51 in RUN_ALL_TESTS() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/include/gtest/gtest.h:2314
    #26 0x562a51 in operator() /home/mjs/src/DLA-Future/test/src/gtest_mpipika_main.cpp:57
    #27 0x562a51 in test_main(pika::program_options::variables_map&) /home/mjs/src/DLA-Future/test/src/gtest_mpipika_main.cpp:58
    #28 0x7f7d5013f3f5 in pika::util::detail::basic_function<int (), true>::operator()() const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/basic_function.hpp:199
    #29 0x7f7d5013f3f5 in pika::runtime::run_helper(pika::util::detail::function<int ()> const&, int&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/runtime/src/runtime.cpp:1077
    #30 0x7f7d5015449e in decltype ((((mem_ptr_target<pika::runtime>)(static_cast<decltype ({parm#1})&&>({parm#1}))).*((*this).pm))((static_cast<decltype ({parm#2})&&>({parm#2}))...)) pika::util::detail::invoke_mem_fun<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::util::detail::function<int ()> const&, int&, bool), pika::runtime>::operator()<pika::runtime*&, pika::util::detail::function<int ()>&, int&, bool&>(pika::runtime*&, pika::util::detail::function<int ()>&, int&, bool&) const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/tag_invoke/include/pika/functional/detail/invoke.hpp:109
    #31 0x7f7d5015449e in pika::util::detail::invoke_bound_result<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::runtime::*&)(pika::util::detail::function<int ()> const&, int&, bool), pika::util::detail::pack<pika::runtime*&, pika::util::detail::function<int ()>&, int&, bool&>, pika::threads::detail::thread_restart_state&&>::type pika::util::detail::bound<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::runtime::*)(pika::util::detail::function<int ()> const&, int&, bool), pika::util::detail::pack_c<unsigned long, 0ul, 1ul, 2ul, 3ul>, pika::runtime*, pika::util::detail::function<int ()>, int&, bool>::operator()<pika::threads::detail::thread_restart_state>(pika::threads::detail::thread_restart_state&&) & /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/bind.hpp:123
    #32 0x7f7d5015449e in std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> pika::util::detail::callable_vtable<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::threads::detail::thread_restart_state)>::_invoke<pika::util::detail::bound<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::runtime::*)(pika::util::detail::function<int ()> const&, int&, bool), pika::util::detail::pack_c<unsigned long, 0ul, 1ul, 2ul, 3ul>, pika::runtime*, pika::util::detail::function<int ()>, int&, bool> >(void*, pika::threads::detail::thread_restart_state&&) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/vtable/callable_vtable.hpp:88
    #33 0x7f7d4ff7176c in pika::util::detail::basic_function<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::threads::detail::thread_restart_state), false>::operator()(pika::threads::detail::thread_restart_state) const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/basic_function.hpp:199
    #34 0x7f7d4ff7176c in pika::threads::coroutines::detail::coroutine_impl::operator()() /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/coroutines/src/detail/coroutine_impl.cpp:71
    #35 0x7f7d4ff6df18 in void pika::threads::coroutines::detail::lx::trampoline<pika::threads::coroutines::detail::coroutine_impl>(void*) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/coroutines/include/pika/coroutines/detail/context_linux_x86.hpp:93

0x6110036489a8 is located 104 bytes inside of 248-byte region [0x611003648940,0x611003648a38)
freed by thread T3 here:
    #0 0x7f7d548bddf8 in operator delete(void*, unsigned long) (/home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/gcc-runtime-12.3.0-uvb562eltw54c2ngrlbcelp6upylif7f/lib/libasan.so.8+0xbddf8)
    #1 0x7f7d53615284 in std::__new_allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > >::deallocate(pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >*, unsigned long) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/new_allocator.h:158
    #2 0x7f7d53615284 in std::allocator_traits<std::allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > > >::deallocate(std::allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > >&, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >*, unsigned long) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/alloc_traits.h:496
    #3 0x7f7d53615284 in pika::start_detached_detail::intrusive_ptr_release(pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >*) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/start_detached.hpp:106
    #4 0x7f7d536355f8 in pika::start_detached_detail::intrusive_ptr_release(pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >*) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/optional:288
    #5 0x7f7d536355f8 in pika::memory::intrusive_ptr<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > >::~intrusive_ptr() /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/memory/intrusive_ptr.hpp:82
    #6 0x7f7d536355f8 in pika::memory::intrusive_ptr<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > >::reset() /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/memory/intrusive_ptr.hpp:136
    #7 0x7f7d536355f8 in void pika::start_detached_detail::tag_invoke<>(pika::execution::experimental::set_value_t, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver&&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/start_detached.hpp:71
    #8 0x7f7d536355f8 in pika::functional::detail::tag_invoke_result<pika::functional::detail::tag_invoke_t_ns::tag_invoke_t const, pika::execution::experimental::set_value_t, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::type pika::functional::detail::tag_base_ns::tag<pika::execution::experimental::set_value_t>::operator()<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>(pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver&&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:208
    #9 0x7f7d536355f8 in pika::util::detail::invoke_bound_front_result<pika::execution::experimental::set_value_t&&, pika::util::detail::pack<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver&&>>::type pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::operator()<>() && /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/bind_front.hpp:94
    #10 0x7f7d536355f8 in void std::__invoke_impl<void, pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>>(std::__invoke_other, pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/invoke.h:61
    #11 0x7f7d536355f8 in std::__invoke_result<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>>::type std::__invoke<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>>(pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/invoke.h:96
    #12 0x7f7d536355f8 in decltype(auto) std::__apply_impl<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>, std::tuple<>>(pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>&&, std::tuple<>&&, std::integer_sequence<unsigned long>) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/tuple:1852
    #13 0x7f7d536355f8 in decltype(auto) std::apply<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>, std::tuple<> >(pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>&&, std::tuple<>&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/tuple:1863
    #14 0x7f7d536355f8 in void pika::drop_op_state_detail::tag_invoke<>(pika::execution::experimental::set_value_t, pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/drop_operation_state.hpp:93
    #15 0x7f7d536355f8 in pika::functional::detail::tag_invoke_result<pika::functional::detail::tag_invoke_t_ns::tag_invoke_t const, pika::execution::experimental::set_value_t, pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type>::type pika::functional::detail::tag_base_ns::tag<pika::execution::experimental::set_value_t>::operator()<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type>(pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type&&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:208
    #16 0x7f7d536355f8 in pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type::set_value_helper<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&)::{lambda()#1}::operator()() const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/then.hpp:73
    #17 0x7f7d536355f8 in decltype(auto) pika::detail::try_catch_exception_ptr<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type::set_value_helper<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&)::{lambda()#1}, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type::set_value_helper<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&)::{lambda(std::__exception_ptr::exception_ptr)#2}>(pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type::set_value_helper<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&)::{lambda()#1}&&, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type::set_value_helper<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&)::{lambda(std::__exception_ptr::exception_ptr)#2}&&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/errors/try_catch_exception_ptr.hpp:35
    #18 0x7f7d536355f8 in void pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type::set_value_helper<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/then.hpp:62
    #19 0x7f7d536355f8 in void pika::then_detail::tag_invoke<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(pika::execution::experimental::set_value_t, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type&&, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/then.hpp:99
    #20 0x7f7d536355f8 in pika::functional::detail::tag_invoke_result<pika::functional::detail::tag_invoke_t_ns::tag_invoke_t const, pika::execution::experimental::set_value_t, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >::type pika::functional::detail::tag_base_ns::tag<pika::execution::experimental::set_value_t>::operator()<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type&&, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:208
    #21 0x7f7d536355f8 in pika::util::detail::invoke_bound_front_result<pika::execution::experimental::set_value_t&&, pika::util::detail::pack<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type&&>, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&>::type pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::operator()<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&) && /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/bind_front.hpp:94
    #22 0x7f7d536355f8 in void std::__invoke_impl<void, pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(std::__invoke_other, pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&&, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/invoke.h:61
    #23 0x7f7d536355f8 in std::__invoke_result<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >::type std::__invoke<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >(pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&&, std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > >&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/invoke.h:96
    #24 0x7f7d536355f8 in decltype(auto) std::__apply_impl<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >, 0ul>(pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&&, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >&&, std::integer_sequence<unsigned long, 0ul>) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/tuple:1852
    #25 0x7f7d536355f8 in decltype(auto) std::apply<pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > > >(pika::util::detail::bound_front<pika::execution::experimental::set_value_t, pika::util::detail::pack_c<unsigned long, 0ul>, pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>&&, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/tuple:1863
    #26 0x7f7d536355f8 in void pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor::operator()<std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >, void>(std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >&&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/schedule_from.hpp:270
    #27 0x7f7d536355f8 in void std::__invoke_impl<void, pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > > >(std::__invoke_other, pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor&&, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/invoke.h:61
    #28 0x7f7d536355f8 in std::__invoke_result<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > > >::type std::__invoke<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > > >(pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor&&, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > >&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/invoke.h:96
    #29 0x7f7d536355f8 in _ZNSt8__detail9__variant17__gen_vtable_implINS0_12_Multi_arrayIPFNS0_21__deduce_visit_resultIvEEON4pika20schedule_from_detail25schedule_from_sender_implINS5_22when_all_vector_detail27when_all_vector_sender_implINS5_9execution12experimental17unique_any_senderIJN4dlaf6matrix4TileIlLNSD_6DeviceE0EEEEEEE27when_all_vector_sender_typeENSB_21thread_pool_schedulerEE25schedule_from_sender_type15operation_stateINS5_11then_detail18then_receiver_implINS5_20drop_op_state_detail27drop_op_state_receiver_implINSR_27drop_op_state_op_state_implINSP_16then_sender_implISN_NSD_6common8internal14ConsumeRvaluesINSW_10UnwrappingIZNSD_11eigensolver8internal8addIndexElllRNSE_6MatrixIlLSG_0EEEEUlRKT_E_EEEEE16then_sender_typeENS5_21start_detached_detail22operation_state_holderINSR_25drop_op_state_sender_implIS1B_E25drop_op_state_sender_typeESaIiEE23start_detached_receiverEE27drop_op_state_op_state_typeEE27drop_op_state_receiver_typeES19_E18then_receiver_typeEE30scheduler_sender_value_visitorEOSt7variantIJSt9monostateSt5tupleIJSt6vectorISH_SaISH_EEEEEEEJEEESt16integer_sequenceImJLm1EEEE14__visit_invokeES1S_S21_ /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/variant:1031
    #30 0x7f7d536355f8 in decltype(auto) std::__do_visit<std::__detail::__variant::__deduce_visit_result<void>, pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor, std::variant<std::monostate, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > > > >(pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_value_visitor&&, std::variant<std::monostate, std::tuple<std::vector<dlaf::matrix::Tile<long, (dlaf::Device)0>, std::allocator<dlaf::matrix::Tile<long, (dlaf::Device)0> > > > >&&) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/variant:1791
    #31 0x7f7d536355f8 in _ZSt5visitIN4pika20schedule_from_detail25schedule_from_sender_implINS0_22when_all_vector_detail27when_all_vector_sender_implINS0_9execution12experimental17unique_any_senderIJN4dlaf6matrix4TileIlLNS8_6DeviceE0EEEEEEE27when_all_vector_sender_typeENS6_21thread_pool_schedulerEE25schedule_from_sender_type15operation_stateINS0_11then_detail18then_receiver_implINS0_20drop_op_state_detail27drop_op_state_receiver_implINSM_27drop_op_state_op_state_implINSK_16then_sender_implISI_NS8_6common8internal14ConsumeRvaluesINSR_10UnwrappingIZNS8_11eigensolver8internal8addIndexElllRNS9_6MatrixIlLSB_0EEEEUlRKT_E_EEEEE16then_sender_typeENS0_21start_detached_detail22operation_state_holderINSM_25drop_op_state_sender_implIS16_E25drop_op_state_sender_typeESaIiEE23start_detached_receiverEE27drop_op_state_op_state_typeEE27drop_op_state_receiver_typeES14_E18then_receiver_typeEE30scheduler_sender_value_visitorEJSt7variantIJSt9monostateSt5tupleIJSt6vectorISC_SaISC_EEEEEEEENSt13invoke_resultISZ_JDpNSt13__conditionalIX21is_lvalue_reference_vIT0_EEE4typeIRNSt19variant_alternativeILm0ENSt16remove_referenceIDTcl4__ascl7declvalIS1X_EEEEE4typeEE4typeEOS26_EEEE4typeEOSZ_DpOS1X_ /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/variant:1853
    #32 0x7f7d536355f8 in pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::set_value_scheduler_sender() /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/schedule_from.hpp:293
    #33 0x7f7d536355f8 in pika::schedule_from_detail::tag_invoke(pika::execution::experimental::set_value_t, pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_receiver&&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/schedule_from.hpp:255
    #34 0x7f7d536355f8 in _ZNK4pika10functional6detail11tag_base_ns3tagINS_9execution12experimental11set_value_tEEclIJNS_20schedule_from_detail25schedule_from_sender_implINS_22when_all_vector_detail27when_all_vector_sender_implINS5_17unique_any_senderIJN4dlaf6matrix4TileIlLNSE_6DeviceE0EEEEEEE27when_all_vector_sender_typeENS5_21thread_pool_schedulerEE25schedule_from_sender_type15operation_stateINS_11then_detail18then_receiver_implINS_20drop_op_state_detail27drop_op_state_receiver_implINSS_27drop_op_state_op_state_implINSQ_16then_sender_implISO_NSE_6common8internal14ConsumeRvaluesINSX_10UnwrappingIZNSE_11eigensolver8internal8addIndexElllRNSF_6MatrixIlLSH_0EEEEUlRKT_E_EEEEE16then_sender_typeENS_21start_detached_detail22operation_state_holderINSS_25drop_op_state_sender_implIS1C_E25drop_op_state_sender_typeESaIiEE23start_detached_receiverEE27drop_op_state_op_state_typeEE27drop_op_state_receiver_typeES1A_E18then_receiver_typeEE25scheduler_sender_receiverEEEENS1_17tag_invoke_resultIKNS1_15tag_invoke_t_ns12tag_invoke_tEJS6_DpT_EE4typeEDpOS1X_ /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/tag_invoke.hpp:208
    #35 0x7f7d536355f8 in pika::execution::experimental::tag_invoke(pika::execution::experimental::start_t, pika::execution::experimental::thread_pool_scheduler::operation_state<pika::execution::experimental::thread_pool_scheduler, pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::scheduler_sender_receiver>&)::{lambda()#1}::operator()() const::{lambda()#1}::operator()() /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/executors/thread_pool_scheduler.hpp:168
    #36 0x7f7d536355f8 in _ZN4pika7threads6detail23thread_function_nullaryIZZNS_9execution12experimental10tag_invokeENS4_7start_tERNS4_21thread_pool_scheduler15operation_stateIS6_NS_20schedule_from_detail25schedule_from_sender_implINS_22when_all_vector_detail27when_all_vector_sender_implINS4_17unique_any_senderIJN4dlaf6matrix4TileIlLNSD_6DeviceE0EEEEEEE27when_all_vector_sender_typeES6_E25schedule_from_sender_type15operation_stateINS_11then_detail18then_receiver_implINS_20drop_op_state_detail27drop_op_state_receiver_implINSQ_27drop_op_state_op_state_implINSO_16then_sender_implISM_NSD_6common8internal14ConsumeRvaluesINSV_10UnwrappingIZNSD_11eigensolver8internal8addIndexElllRNSE_6MatrixIlLSG_0EEEEUlRKT_E_EEEEE16then_sender_typeENS_21start_detached_detail22operation_state_holderINSQ_25drop_op_state_sender_implIS1A_E25drop_op_state_sender_typeESaIiEE23start_detached_receiverEE27drop_op_state_op_state_typeEE27drop_op_state_receiver_typeES18_E18then_receiver_typeEE25scheduler_sender_receiverEEEENKUlvE_clEvEUlvE_EclENS1_20thread_restart_stateE /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/threading_base/register_thread.hpp:73
    #37 0x7f7d536355f8 in _ZN4pika4util6detail15callable_vtableIFSt4pairINS_7threads6detail21thread_schedule_stateENS5_9thread_idEENS5_20thread_restart_stateEEE7_invokeINS5_23thread_function_nullaryIZZNS_9execution12experimental10tag_invokeENSF_7start_tERNSF_21thread_pool_scheduler15operation_stateISH_NS_20schedule_from_detail25schedule_from_sender_implINS_22when_all_vector_detail27when_all_vector_sender_implINSF_17unique_any_senderIJN4dlaf6matrix4TileIlLNSO_6DeviceE0EEEEEEE27when_all_vector_sender_typeESH_E25schedule_from_sender_type15operation_stateINS_11then_detail18then_receiver_implINS_20drop_op_state_detail27drop_op_state_receiver_implINS11_27drop_op_state_op_state_implINSZ_16then_sender_implISX_NSO_6common8internal14ConsumeRvaluesINS16_10UnwrappingIZNSO_11eigensolver8internal8addIndexElllRNSP_6MatrixIlLSR_0EEEEUlRKT_E_EEEEE16then_sender_typeENS_21start_detached_detail22operation_state_holderINS11_25drop_op_state_sender_implIS1L_E25drop_op_state_sender_typeESaIiEE23start_detached_receiverEE27drop_op_state_op_state_typeEE27drop_op_state_receiver_typeES1J_E18then_receiver_typeEE25scheduler_sender_receiverEEEENKUlvE_clEvEUlvE_EEEES8_PvOS9_ /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/detail/vtable/callable_vtable.hpp:88
    #38 0x7f7d4ff7176c in pika::util::detail::basic_function<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::threads::detail::thread_restart_state), false>::operator()(pika::threads::detail::thread_restart_state) const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/basic_function.hpp:199
    #39 0x7f7d4ff7176c in pika::threads::coroutines::detail::coroutine_impl::operator()() /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/coroutines/src/detail/coroutine_impl.cpp:71
    #40 0x7f7d4ff6df18 in void pika::threads::coroutines::detail::lx::trampoline<pika::threads::coroutines::detail::coroutine_impl>(void*) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/coroutines/include/pika/coroutines/detail/context_linux_x86.hpp:93

previously allocated by thread T1 here:
    #0 0x7f7d548bcef8 in operator new(unsigned long) (/home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/gcc-runtime-12.3.0-uvb562eltw54c2ngrlbcelp6upylif7f/lib/libasan.so.8+0xbcef8)
    #1 0x7f7d537f3da1 in std::__new_allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > >::allocate(unsigned long, void const*) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/new_allocator.h:137
    #2 0x7f7d537f3da1 in std::allocator_traits<std::allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > > >::allocate(std::allocator<pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> > >&, unsigned long) /nix/store/nqibm5xh8zwkc9x9qp1pbk67i35g1zc8-gfortran-12.3.0/include/c++/12.3.0/bits/alloc_traits.h:464
    #3 0x7f7d537f3da1 in void pika::execution::experimental::tag_fallback_invoke<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int>, 42, 0>(pika::execution::experimental::start_detached_t, pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&, std::allocator<int> const&) /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/start_detached.hpp:138
    #4 0x7f7d537f3da1 in pika::functional::detail::tag_fallback_invoke_result<pika::functional::detail::tag_fallback_invoke_t_ns::tag_fallback_invoke_t const, pika::execution::experimental::start_detached_t, pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&>::type pika::functional::detail::tag_base_ns::tag_fallback<pika::execution::experimental::start_detached_t>::operator()<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, void>(pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type&&) const /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/functional/detail/tag_fallback_invoke.hpp:265
    #5 0x7f7d537f3da1 in dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver/index_manipulation.h:78
    #6 0x7f7d53a1ab18 in void dlaf::eigensolver::internal::mergeDistSubproblems<(dlaf::Backend)0, float, (dlaf::Device)0, pika::split_detail::split_sender_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_impl::when_all_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> >, pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> > >::when_all_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::cuppensDecomp_t> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::ensure_started_sender_type, std::allocator<int> >::split_sender_type&>(dlaf::comm::CommunicatorPipeline<(dlaf::comm::CommunicatorType)2>&, dlaf::comm::CommunicatorPipeline<(dlaf::comm::CommunicatorType)0>&, dlaf::comm::CommunicatorPipeline<(dlaf::comm::CommunicatorType)1>&, long, long, long, pika::split_detail::split_sender_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_impl::when_all_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> >, pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<float, (dlaf::Device)0> > >::when_all_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::cuppensDecomp_t> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::ensure_started_sender_type, std::allocator<int> >::split_sender_type&, dlaf::eigensolver::internal::WorkSpace<float, (dlaf::Device)0>&, dlaf::eigensolver::internal::WorkSpaceHost<float>&, dlaf::eigensolver::internal::DistWorkSpaceHostMirror<float, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver/merge.h:1838
    #7 0x7f7d53a1fc97 in dlaf::eigensolver::internal::TridiagSolver<(dlaf::Backend)0, (dlaf::Device)0, float>::call(dlaf::comm::CommunicatorGrid&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver/impl.h:425
    #8 0x4aeb2f in void dlaf::eigensolver::internal::tridiagonal_eigensolver<(dlaf::Backend)0, (dlaf::Device)0, float>(dlaf::comm::CommunicatorGrid&, dlaf::matrix::Matrix<dlaf::TypeInfo<float>::BaseType, (dlaf::Device)0>&, dlaf::matrix::Matrix<dlaf::TypeInfo<float>::BaseType, (dlaf::Device)0>&, dlaf::matrix::Matrix<float, (dlaf::Device)0>&) /home/mjs/src/DLA-Future/include/dlaf/eigensolver/tridiag_solver.h:124
    #9 0x547a2b in void solveRandomTridiagMatrix<(dlaf::Backend)0, (dlaf::Device)0, float>(dlaf::comm::CommunicatorGrid&, long, long) /home/mjs/src/DLA-Future/test/unit/eigensolver/test_tridiag_solver_distributed.cpp:268
    #10 0x548aa6 in TridiagSolverDistTestMC_Random_Test<float>::TestBody() /home/mjs/src/DLA-Future/test/unit/eigensolver/test_tridiag_solver_distributed.cpp:308
    #11 0x7f7d54fad792 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2621
    #12 0x7f7d54fad792 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2657
    #13 0x7f7d54f6c1aa in testing::Test::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2696
    #14 0x7f7d54f6c1aa in testing::Test::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2686
    #15 0x7f7d54f6c886 in testing::TestInfo::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2845
    #16 0x7f7d54f6d0ac in testing::TestSuite::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:3004
    #17 0x7f7d54f8be1a in testing::internal::UnitTestImpl::RunAllTests() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:5890
    #18 0x7f7d54fae642 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2621
    #19 0x7f7d54fae642 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:2657
    #20 0x7f7d54f6d3ae in testing::UnitTest::Run() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/src/gtest.cc:5455
    #21 0x562a51 in RUN_ALL_TESTS() /home/mjs/src/DLA-Future/build/spack-sanitizers/_deps/googletest-src/googletest/include/gtest/gtest.h:2314
    #22 0x562a51 in operator() /home/mjs/src/DLA-Future/test/src/gtest_mpipika_main.cpp:57
    #23 0x562a51 in test_main(pika::program_options::variables_map&) /home/mjs/src/DLA-Future/test/src/gtest_mpipika_main.cpp:58
    #24 0x7f7d5013f3f5 in pika::util::detail::basic_function<int (), true>::operator()() const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/basic_function.hpp:199
    #25 0x7f7d5013f3f5 in pika::runtime::run_helper(pika::util::detail::function<int ()> const&, int&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/runtime/src/runtime.cpp:1077
    #26 0x7f7d5015449e in decltype ((((mem_ptr_target<pika::runtime>)(static_cast<decltype ({parm#1})&&>({parm#1}))).*((*this).pm))((static_cast<decltype ({parm#2})&&>({parm#2}))...)) pika::util::detail::invoke_mem_fun<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::util::detail::function<int ()> const&, int&, bool), pika::runtime>::operator()<pika::runtime*&, pika::util::detail::function<int ()>&, int&, bool&>(pika::runtime*&, pika::util::detail::function<int ()>&, int&, bool&) const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/tag_invoke/include/pika/functional/detail/invoke.hpp:109
    #27 0x7f7d5015449e in pika::util::detail::invoke_bound_result<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::runtime::*&)(pika::util::detail::function<int ()> const&, int&, bool), pika::util::detail::pack<pika::runtime*&, pika::util::detail::function<int ()>&, int&, bool&>, pika::threads::detail::thread_restart_state&&>::type pika::util::detail::bound<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::runtime::*)(pika::util::detail::function<int ()> const&, int&, bool), pika::util::detail::pack_c<unsigned long, 0ul, 1ul, 2ul, 3ul>, pika::runtime*, pika::util::detail::function<int ()>, int&, bool>::operator()<pika::threads::detail::thread_restart_state>(pika::threads::detail::thread_restart_state&&) & /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/bind.hpp:123
    #28 0x7f7d5015449e in std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> pika::util::detail::callable_vtable<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::threads::detail::thread_restart_state)>::_invoke<pika::util::detail::bound<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::runtime::*)(pika::util::detail::function<int ()> const&, int&, bool), pika::util::detail::pack_c<unsigned long, 0ul, 1ul, 2ul, 3ul>, pika::runtime*, pika::util::detail::function<int ()>, int&, bool> >(void*, pika::threads::detail::thread_restart_state&&) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/vtable/callable_vtable.hpp:88
    #29 0x7f7d4ff7176c in pika::util::detail::basic_function<std::pair<pika::threads::detail::thread_schedule_state, pika::threads::detail::thread_id> (pika::threads::detail::thread_restart_state), false>::operator()(pika::threads::detail::thread_restart_state) const /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/functional/include/pika/functional/detail/basic_function.hpp:199
    #30 0x7f7d4ff7176c in pika::threads::coroutines::detail::coroutine_impl::operator()() /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/coroutines/src/detail/coroutine_impl.cpp:71
    #31 0x7f7d4ff6df18 in void pika::threads::coroutines::detail::lx::trampoline<pika::threads::coroutines::detail::coroutine_impl>(void*) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/coroutines/include/pika/coroutines/detail/context_linux_x86.hpp:93

Thread T1 created by T0 here:
    #0 0x7f7d5484d136 in __interceptor_pthread_create (/home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/gcc-runtime-12.3.0-uvb562eltw54c2ngrlbcelp6upylif7f/lib/libasan.so.8+0x4d136)
    #1 0x7f7d4e6e0698 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/gcc-runtime-12.3.0-uvb562eltw54c2ngrlbcelp6upylif7f/lib/libstdc++.so.6+0xe0698)
    #2 0x7f7d502190e5 in pika::threads::detail::scheduled_thread_pool<pika::threads::detail::local_priority_queue_scheduler<std::mutex, pika::threads::detail::lockfree_fifo, pika::threads::detail::lockfree_fifo, pika::threads::detail::lockfree_lifo> >::run(std::unique_lock<std::mutex>&, unsigned long) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool_impl.hpp:305
    #3 0x7f7d50366a0f in pika::threads::detail::thread_manager::run() /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/thread_manager/src/thread_manager.cpp:832
    #4 0x7f7d5014cc8f in pika::runtime::start(pika::util::detail::function<int ()> const&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/runtime/src/runtime.cpp:1139
    #5 0x7f7d50112452 in pika::runtime::run(pika::util::detail::function<int ()> const&) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/runtime/src/runtime.cpp:1414
    #6 0x7f7d50039cac in pika::detail::run(pika::runtime&, pika::util::detail::function<int (pika::program_options::variables_map&)> const&, pika::program_options::variables_map&, std::function<void ()>, std::function<void ()>) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:198
    #7 0x7f7d5003af52 in pika::detail::run_or_start(bool, std::unique_ptr<pika::runtime, std::default_delete<pika::runtime> >, pika::detail::command_line_handling&, std::function<void ()>, std::function<void ()>) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:229
    #8 0x7f7d5003e4c3 in pika::detail::run_or_start(pika::util::detail::function<int (pika::program_options::variables_map&)> const&, int, char const* const*, pika::init_params const&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:344
    #9 0x7f7d5003fb5f in pika::detail::init_start_impl(pika::util::detail::function<int (pika::program_options::variables_map&)>, int, char const* const*, pika::init_params const&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:366
    #10 0x7f7d5003fb5f in pika::init(std::function<int (pika::program_options::variables_map&)>, int, char const* const*, pika::init_params const&) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:373
    #11 0x4439d4 in main /home/mjs/src/DLA-Future/test/src/gtest_mpipika_main.cpp:109
    #12 0x7f7d4e43ffcd in __libc_start_call_main (/nix/store/9y8pmvk8gdwwznmkzxa6pwyah52xy3nk-glibc-2.38-27/lib/libc.so.6+0x27fcd)

Thread T3 created by T0 here:
    #0 0x7f7d5484d136 in __interceptor_pthread_create (/home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/gcc-runtime-12.3.0-uvb562eltw54c2ngrlbcelp6upylif7f/lib/libasan.so.8+0x4d136)
    #1 0x7f7d4e6e0698 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/gcc-runtime-12.3.0-uvb562eltw54c2ngrlbcelp6upylif7f/lib/libstdc++.so.6+0xe0698)
    #2 0x7f7d502190e5 in pika::threads::detail::scheduled_thread_pool<pika::threads::detail::local_priority_queue_scheduler<std::mutex, pika::threads::detail::lockfree_fifo, pika::threads::detail::lockfree_fifo, pika::threads::detail::lockfree_lifo> >::run(std::unique_lock<std::mutex>&, unsigned long) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/thread_pools/include/pika/thread_pools/scheduled_thread_pool_impl.hpp:305
    #3 0x7f7d50366a0f in pika::threads::detail::thread_manager::run() /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/thread_manager/src/thread_manager.cpp:832
    #4 0x7f7d5014cc8f in pika::runtime::start(pika::util::detail::function<int ()> const&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/runtime/src/runtime.cpp:1139
    #5 0x7f7d50112452 in pika::runtime::run(pika::util::detail::function<int ()> const&) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/runtime/src/runtime.cpp:1414
    #6 0x7f7d50039cac in pika::detail::run(pika::runtime&, pika::util::detail::function<int (pika::program_options::variables_map&)> const&, pika::program_options::variables_map&, std::function<void ()>, std::function<void ()>) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:198
    #7 0x7f7d5003af52 in pika::detail::run_or_start(bool, std::unique_ptr<pika::runtime, std::default_delete<pika::runtime> >, pika::detail::command_line_handling&, std::function<void ()>, std::function<void ()>) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:229
    #8 0x7f7d5003e4c3 in pika::detail::run_or_start(pika::util::detail::function<int (pika::program_options::variables_map&)> const&, int, char const* const*, pika::init_params const&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:344
    #9 0x7f7d5003fb5f in pika::detail::init_start_impl(pika::util::detail::function<int (pika::program_options::variables_map&)>, int, char const* const*, pika::init_params const&, bool) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:366
    #10 0x7f7d5003fb5f in pika::init(std::function<int (pika::program_options::variables_map&)>, int, char const* const*, pika::init_params const&) /tmp/mjs/spack-stage/spack-stage-pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/spack-src/libs/pika/init_runtime/src/init_runtime.cpp:373
    #11 0x4439d4 in main /home/mjs/src/DLA-Future/test/src/gtest_mpipika_main.cpp:109
    #12 0x7f7d4e43ffcd in __libc_start_call_main (/nix/store/9y8pmvk8gdwwznmkzxa6pwyah52xy3nk-glibc-2.38-27/lib/libc.so.6+0x27fcd)

SUMMARY: AddressSanitizer: heap-use-after-free /home/mjs/src/spack/opt/spack/linux-nixos24-icelake/gcc-12.3.0/pika-0.21.0-g4p6px7dxg7hndcgzlipdyoc7gpcujmq/include/pika/execution/algorithms/when_all_vector.hpp:341 in pika::when_all_vector_detail::tag_invoke(pika::execution::experimental::start_t, pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type::operation_state<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type::operation_state<pika::then_detail::then_receiver_impl<pika::drop_op_state_detail::drop_op_state_receiver_impl<pika::drop_op_state_detail::drop_op_state_op_state_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type, pika::start_detached_detail::operation_state_holder<pika::drop_op_state_detail::drop_op_state_sender_impl<pika::then_detail::then_sender_impl<pika::schedule_from_detail::schedule_from_sender_impl<pika::when_all_vector_detail::when_all_vector_sender_impl<pika::execution::experimental::unique_any_sender<dlaf::matrix::Tile<long, (dlaf::Device)0> > >::when_all_vector_sender_type, pika::execution::experimental::thread_pool_scheduler>::schedule_from_sender_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_sender_type>::drop_op_state_sender_type, std::allocator<int> >::start_detached_receiver>::drop_op_state_op_state_type>::drop_op_state_receiver_type, dlaf::common::internal::ConsumeRvalues<dlaf::common::internal::Unwrapping<dlaf::eigensolver::internal::addIndex(long, long, long, dlaf::matrix::Matrix<long, (dlaf::Device)0>&)::{lambda(auto:1 const&)#1}> > >::then_receiver_type>::predecessor_sender_receiver>&)
Shadow bytes around the buggy address:
  0x0c22806c10e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c22806c10f0: 00 fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c22806c1100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c22806c1110: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa
  0x0c22806c1120: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
=>0x0c22806c1130: fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd fd fd
  0x0c22806c1140: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
  0x0c22806c1150: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c22806c1160: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c22806c1170: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c22806c1180: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==2218680==ABORTING

@msimberg
Copy link
Contributor Author

cscs-ci run

1 similar comment
@msimberg
Copy link
Contributor Author

cscs-ci run

@msimberg msimberg enabled auto-merge January 16, 2024 08:32
@msimberg msimberg added this pull request to the merge queue Jan 16, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 16, 2024
@msimberg
Copy link
Contributor Author

I think the failure reported on the algorithm_ensure_started test with valgrind:

13/162 Test  #15: tests.unit.modules.execution.algorithm_ensure_started ..............................***Failed    2.64 sec
==2726== Memcheck, a memory error detector
==2726== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2726== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==2726== Command: /__w/pika/pika/build/bin/algorithm_ensure_started_test --pika:threads=4
==2726== 
hwloc x86 backend cannot work under Valgrind, disabling.
May be reenabled by dumping CPUIDs with hwloc-gather-cpuid
and reloading them under Valgrind with HWLOC_CPUID_PATH.
All tests passed. Ran 0 sanity checks and 22 tests.
==2726== 
==2726== HEAP SUMMARY:
==2726==     in use at exit: 30,532 bytes in 76 blocks
==2726==   total heap usage: 834 allocs, 758 frees, 501,841 bytes allocated
==2726== 
==2726== 336 bytes in 1 blocks are possibly lost in loss record 3 of 8
==2726==    at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==2726==    by 0x40147D9: calloc (rtld-malloc.h:44)
==2726==    by 0x40147D9: allocate_dtv (dl-tls.c:375)
==2726==    by 0x40147D9: _dl_allocate_tls (dl-tls.c:634)
==2726==    by 0x538A834: allocate_stack (allocatestack.c:430)
==2726==    by 0x538A834: pthread_create@@GLIBC_2.34 (pthread_create.c:647)
==2726==    by 0x509E328: std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==2726==    by 0x16B329: std::thread::thread<pika::execution::experimental::tag_invoke(pika::execution::experimental::start_t, pika::execution::experimental::std_thread_scheduler::operation_state<pika::then_detail::then_receiver_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::ensure_started_receiver, main::$_11>::then_receiver_type>&)::{lambda()#1}::operator()() const::{lambda()#1}, , void>(pika::execution::experimental::tag_invoke(pika::execution::experimental::start_t, pika::execution::experimental::std_thread_scheduler::operation_state<pika::then_detail::then_receiver_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::ensure_started_receiver, main::$_11>::then_receiver_type>&)::{lambda()#1}::operator()() const::{lambda()#1}&&) (std_thread.h:143)
==2726==    by 0x16B227: pika::execution::experimental::tag_invoke(pika::execution::experimental::start_t, pika::execution::experimental::std_thread_scheduler::operation_state<pika::then_detail::then_receiver_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::ensure_started_receiver, main::$_11>::then_receiver_type>&)::{lambda()#1}::operator()() const (libs/pika/executors/include/pika/executors/std_thread_scheduler.hpp:58)
==2726==    by 0x16B110: pika::execution::experimental::tag_invoke(pika::execution::experimental::start_t, pika::execution::experimental::std_thread_scheduler::operation_state<pika::then_detail::then_receiver_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::ensure_started_receiver, main::$_11>::then_receiver_type>&) (libs/pika/errors/include/pika/errors/try_catch_exception_ptr.hpp:35)
==2726==    by 0x16A2A9: operator()<pika::execution::experimental::std_thread_scheduler::operation_state<pika::then_detail::then_receiver_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::ensure_started_receiver, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_receiver_type> &, void> (libs/pika/tag_invoke/include/pika/functional/tag_invoke.hpp:221)
==2726==    by 0x16A2A9: pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::start() & (libs/pika/execution/include/pika/execution/algorithms/ensure_started.hpp:363)
==2726==    by 0x169D7B: pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::ensure_started_sender_type<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type>(pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, main::$_11>::then_sender_type&&, std::allocator<int> const&) (libs/pika/execution/include/pika/execution/algorithms/ensure_started.hpp:399)
==2726==    by 0x158F82: tag_fallback_invoke<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type, std::allocator<int>, 42, 0> (libs/pika/execution/include/pika/execution/algorithms/ensure_started.hpp:488)
==2726==    by 0x158F82: operator()<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type, std::allocator<int>, void> (libs/pika/tag_invoke/include/pika/functional/detail/tag_fallback_invoke.hpp:265)
==2726==    by 0x158F82: operator|<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type> (libs/pika/execution/include/pika/execution/algorithms/detail/partial_algorithm.hpp:40)
==2726==    by 0x158F82: main (libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179)
==2726== 
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: possible
   fun:calloc
   fun:calloc
   fun:allocate_dtv
   fun:_dl_allocate_tls
   fun:allocate_stack
   fun:pthread_create@@GLIBC_2.34
   fun:_ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE
   fun:_ZNSt6threadC2IZZN4pika9execution12experimental10tag_invokeENS3_7start_tERNS3_20std_thread_scheduler15operation_stateINS1_11then_detail18then_receiver_implINS1_21ensure_started_detail26ensure_started_sender_implINS7_16then_sender_implINS5_6senderEZ4mainE4$_11E16then_sender_typeESaIiEE26ensure_started_sender_type12shared_state23ensure_started_receiverESD_E18then_receiver_typeEEEENKUlvE_clEvEUlvE_JEvEEOT_DpOT0_
   fun:_ZZN4pika9execution12experimental10tag_invokeENS1_7start_tERNS1_20std_thread_scheduler15operation_stateINS_11then_detail18then_receiver_implINS_21ensure_started_detail26ensure_started_sender_implINS5_16then_sender_implINS3_6senderEZ4mainE4$_11E16then_sender_typeESaIiEE26ensure_started_sender_type12shared_state23ensure_started_receiverESB_E18then_receiver_typeEEEENKUlvE_clEv
   fun:_ZN4pika9execution12experimental10tag_invokeENS1_7start_tERNS1_20std_thread_scheduler15operation_stateINS_11then_detail18then_receiver_implINS_21ensure_started_detail26ensure_started_sender_implINS5_16then_sender_implINS3_6senderEZ4mainE4$_11E16then_sender_typeESaIiEE26ensure_started_sender_type12shared_state23ensure_started_receiverESB_E18then_receiver_typeEEE
   fun:operator()<pika::execution::experimental::std_thread_scheduler::operation_state<pika::then_detail::then_receiver_impl<pika::ensure_started_detail::ensure_started_sender_impl<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type, std::allocator<int> >::ensure_started_sender_type::shared_state::ensure_started_receiver, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_receiver_type> &, void>
   fun:_ZNR4pika21ensure_started_detail26ensure_started_sender_implINS_11then_detail16then_sender_implINS_9execution12experimental20std_thread_scheduler6senderEZ4mainE4$_11E16then_sender_typeESaIiEE26ensure_started_sender_type12shared_state5startEv
   fun:_ZN4pika21ensure_started_detail26ensure_started_sender_implINS_11then_detail16then_sender_implINS_9execution12experimental20std_thread_scheduler6senderEZ4mainE4$_11E16then_sender_typeESaIiEE26ensure_started_sender_typeC2ISA_EEOT_RKSB_
   fun:tag_fallback_invoke<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type, std::allocator<int>, 42, 0>
   fun:operator()<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type, std::allocator<int>, void>
   fun:operator|<pika::then_detail::then_sender_impl<pika::execution::experimental::std_thread_scheduler::sender, (lambda at /__w/pika/pika/libs/pika/execution/tests/unit/algorithm_ensure_started.cpp:179:22)>::then_sender_type>
   fun:main
}
==2726== LEAK SUMMARY:
==2726==    definitely lost: 0 bytes in 0 blocks
==2726==    indirectly lost: 0 bytes in 0 blocks
==2726==      possibly lost: 336 bytes in 1 blocks
==2726==    still reachable: 30,196 bytes in 75 blocks
==2726==         suppressed: 0 bytes in 0 blocks
==2726== Reachable blocks (those to which a pointer was found) are not shown.
==2726== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==2726== 
==2726== For lists of detected and suppressed errors, rerun with: -s
==2726== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

is a test/semantics issue, rather than a clear bug. It's triggered by this test:

{
auto l = std::make_shared<pika::latch>(2);
auto s = ex::schedule(ex::std_thread_scheduler{}) |
ex::then([l]() { l->arrive_and_wait(); }) | ex::ensure_started();
ex::start_detached(std::move(s));
l->arrive_and_wait();
}
. I think what's happening is that the start_detached operation state may be released after main exits because the std::thread created by std_thread_scheduler isn't joined before main exits. I'll ignore the failure in this PR as it's not a new failure, and try to think of a way to restructure the test separately.

@msimberg msimberg merged commit 5d263cd into pika-org:main Jan 16, 2024
65 of 66 checks passed
@msimberg msimberg deleted the when-all-vector-fix-num-predecessors-access branch January 16, 2024 09:54
This was referenced Jan 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

1 participant