-
Notifications
You must be signed in to change notification settings - Fork 197
Data race in tckglobal #3286
Copy link
Copy link
Open
Labels
Description
Despite our efforts in #3172, it seems that we still have data races when running tckglobal. Here is a report of the latest weekly sanitisers run:
WARNING: ThreadSanitizer: data race (pid=52079)
Write of size 4 at 0x72c4000141ac by thread T8:
#0 void MR::Raw::store_native<float>(float, void*, unsigned long) /home/runner/work/mrtrix3/mrtrix3/cpp/core/raw.h:180:26 (libmrtrix-core.so+0x4742b8) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#1 MR::Image<float>::set_value(float) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image.h:97:7 (libmrtrix-core.so+0x4742b8)
#2 MR::Helper::Value<MR::Image<float>>::set(float) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_helpers.h:511:11 (libmrtrix-core.so+0x4742b8)
#3 MR::Helper::Value<MR::Image<float>>::operator=(float) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_helpers.h:493:64 (libmrtrix-core.so+0x4742b8)
#4 void MR::Helper::Row<MR::Image<float>>::operator=<Eigen::Matrix<double, -1, 1, 0, -1, 1>>(Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>> const&) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_helpers.h:556:3 (libmrtrix-core.so+0x4742b8)
#5 MR::DWI::Tractography::GT::ExternalEnergyComputer::acceptChanges() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/externalenergy.cpp:141:16 (libmrtrix-core.so+0x4742b8)
#6 MR::DWI::Tractography::GT::EnergySumComputer::acceptChanges() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/energy.h:78:10 (tckglobal+0x11047c) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#7 MR::DWI::Tractography::GT::MHSampler::randshift() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/mhsampler.cpp:118:8 (libmrtrix-core.so+0x49d0ab) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#8 MR::DWI::Tractography::GT::MHSampler::next() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/mhsampler.cpp:41:12 (libmrtrix-core.so+0x49bcba) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#9 MR::DWI::Tractography::GT::MHSampler::execute() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/mhsampler.cpp:27:5 (libmrtrix-core.so+0x49ba67) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#10 void std::__invoke_impl<void, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::__invoke_memfun_deref, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:74:14 (tckglobal+0x119153) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#11 std::__invoke_result<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>::type std::__invoke<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (tckglobal+0x119153)
#12 void std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (tckglobal+0x119153)
#13 std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (tckglobal+0x119153)
#14 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:1439:6 (tckglobal+0x119153)
#15 std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter> std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&>(std::__invoke_other, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14 (tckglobal+0x11904e) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#16 std::enable_if<is_invocable_r_v<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&>, std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>>::type std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:114:9 (tckglobal+0x11904e)
#17 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290:9 (tckglobal+0x11904e)
#18 std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591:9 (tckglobal+0x118ed0) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#19 std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:596:27 (tckglobal+0x118ed0)
#20 void std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:74:14 (tckglobal+0x11900b) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#21 std::__invoke_result<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>::type std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (tckglobal+0x11900b)
#22 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:909:4 (tckglobal+0x11900b)
#23 std::once_flag::_Prepare_execution::_Prepare_execution<void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::'lambda'()::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:845:21 (tckglobal+0x11900b)
#24 std::once_flag::_Prepare_execution::_Prepare_execution<void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::'lambda'()::__invoke() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:845:16 (tckglobal+0x11900b)
#25 pthread_once <null> (tckglobal+0x6eaad) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#26 __gthread_once(int*, void (*)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:713:12 (tckglobal+0x118c36) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#27 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:916:21 (tckglobal+0x118c36)
#28 std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:435:2 (tckglobal+0x118c36)
#29 std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:1781:6 (tckglobal+0x11848b) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#30 void std::__invoke_impl<void, void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>(std::__invoke_memfun_deref, void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*&&)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:74:14 (tckglobal+0x119547) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#31 std::__invoke_result<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>::type std::__invoke<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>(void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*&&)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (tckglobal+0x119547)
#32 void std::thread::_Invoker<std::tuple<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (tckglobal+0x119547)
#33 std::thread::_Invoker<std::tuple<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (tckglobal+0x119547)
#34 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>>>::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13 (tckglobal+0x119547)
#35 <null> <null> (libstdc++.so.6+0xecdb3) (BuildId: 753c6c8608b61d4e67be8f0c890e03e0aa046b8b)
Previous read of size 4 at 0x72c4000141ac by thread T7:
#0 float MR::Raw::fetch_native<float>(void const*, unsigned long) /home/runner/work/mrtrix3/mrtrix3/cpp/core/raw.h:159:10 (libmrtrix-core.so+0x47f148) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#1 MR::Image<float>::get_value() const /home/runner/work/mrtrix3/mrtrix3/cpp/core/image.h:91:14 (libmrtrix-core.so+0x47f148)
#2 MR::Helper::Value<MR::Image<float>>::get() const /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_helpers.h:509:54 (libmrtrix-core.so+0x47f148)
#3 MR::Helper::Value<MR::Image<float>>::operator float() const /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_helpers.h:492:53 (libmrtrix-core.so+0x47f148)
#4 Eigen::Matrix<double, -1, 1, 0, -1, 1>& Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>>::operator+=<MR::Image<float>>(MR::Helper::ConstRow<MR::Image<float>> const&) /home/runner/work/mrtrix3/mrtrix3/cpp/core/eigen_plugins/dense_base.h:27:1 (libmrtrix-core.so+0x47f148)
#5 MR::DWI::Tractography::GT::ExternalEnergyComputer::add2vox(Eigen::Matrix<int, 3, 1, 0, 3, 1> const&, double) /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/externalenergy.cpp:199:5 (libmrtrix-core.so+0x47608d) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#6 MR::DWI::Tractography::GT::ExternalEnergyComputer::add(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&, Eigen::Matrix<float, 3, 1, 0, 3, 1> const&, double) /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/externalenergy.cpp:170:3 (libmrtrix-core.so+0x4752fa) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#7 MR::DWI::Tractography::GT::ExternalEnergyComputer::stageRemove(MR::DWI::Tractography::GT::Particle const*) /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/externalenergy.h:52:5 (libmrtrix-core.so+0x482be2) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#8 MR::DWI::Tractography::GT::EnergySumComputer::stageRemove(MR::DWI::Tractography::GT::Particle const*) /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/energy.h:68:91 (tckglobal+0x11030a) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#9 MR::DWI::Tractography::GT::MHSampler::death() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/mhsampler.cpp:86:18 (libmrtrix-core.so+0x49c650) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#10 MR::DWI::Tractography::GT::MHSampler::next() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/mhsampler.cpp:38:12 (libmrtrix-core.so+0x49bc8b) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#11 MR::DWI::Tractography::GT::MHSampler::execute() /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/mhsampler.cpp:27:5 (libmrtrix-core.so+0x49ba67) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#12 void std::__invoke_impl<void, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::__invoke_memfun_deref, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:74:14 (tckglobal+0x119153) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#13 std::__invoke_result<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>::type std::__invoke<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (tckglobal+0x119153)
#14 void std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (tckglobal+0x119153)
#15 std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (tckglobal+0x119153)
#16 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:1439:6 (tckglobal+0x119153)
#17 std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter> std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&>(std::__invoke_other, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14 (tckglobal+0x11904e) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#18 std::enable_if<is_invocable_r_v<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&>, std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>>::type std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:114:9 (tckglobal+0x11904e)
#19 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290:9 (tckglobal+0x11904e)
#20 std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591:9 (tckglobal+0x118ed0) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#21 std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:596:27 (tckglobal+0x118ed0)
#22 void std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:74:14 (tckglobal+0x11900b) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#23 std::__invoke_result<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>::type std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (tckglobal+0x11900b)
#24 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:909:4 (tckglobal+0x11900b)
#25 std::once_flag::_Prepare_execution::_Prepare_execution<void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::'lambda'()::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:845:21 (tckglobal+0x11900b)
#26 std::once_flag::_Prepare_execution::_Prepare_execution<void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::'lambda'()::__invoke() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:845:16 (tckglobal+0x11900b)
#27 pthread_once <null> (tckglobal+0x6eaad) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#28 __gthread_once(int*, void (*)()) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:713:12 (tckglobal+0x118c36) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#29 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:916:21 (tckglobal+0x118c36)
#30 std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:435:2 (tckglobal+0x118c36)
#31 std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:1781:6 (tckglobal+0x11848b) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#32 void std::__invoke_impl<void, void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>(std::__invoke_memfun_deref, void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*&&)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:74:14 (tckglobal+0x119547) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#33 std::__invoke_result<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>::type std::__invoke<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>(void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*&&)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14 (tckglobal+0x119547)
#34 void std::thread::_Invoker<std::tuple<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13 (tckglobal+0x119547)
#35 std::thread::_Invoker<std::tuple<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>>::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11 (tckglobal+0x119547)
#36 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>::*)(), std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*>>>::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13 (tckglobal+0x119547)
#37 <null> <null> (libstdc++.so.6+0xecdb3) (BuildId: 753c6c8608b61d4e67be8f0c890e03e0aa046b8b)
Location is heap block of size 77760 at 0x72c400014000 allocated by main thread:
#0 operator new[](unsigned long) <null> (tckglobal+0xea55b) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#1 MR::ImageIO::Scratch::load(MR::Header const&, unsigned long) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_io/scratch.cpp:30:52 (libmrtrix-core.so+0x8098e5) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#2 MR::ImageIO::Base::open(MR::Header const&, unsigned long) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image_io/base.cpp:32:3 (libmrtrix-core.so+0x80073a) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#3 MR::Image<float>::Buffer::Buffer(MR::Header&, bool) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/image.h:298:7 (tckglobal+0x11e5ae) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#4 MR::Image<float> MR::Header::get_image<float>(bool) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/image.h:325:11 (tckglobal+0x11e1c5) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#5 MR::Image<float>::scratch(MR::Header const&, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/core/image.h:203:52 (libmrtrix-core.so+0x46f719) (BuildId: 9e7efdbed18ee2b2795ddcc9b6bcf4a395a304e7)
#6 MR::DWI::Tractography::GT::ExternalEnergyComputer::ExternalEnergyComputer(MR::DWI::Tractography::GT::Stats&, MR::Header&, MR::DWI::Tractography::GT::Properties const&) /home/runner/work/mrtrix3/mrtrix3/cpp/core/dwi/tractography/GT/externalenergy.cpp:43:9 (libmrtrix-core.so+0x46f719)
#7 run() /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/tckglobal.cpp:321:38 (tckglobal+0xf89e6) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#8 main /home/runner/work/mrtrix3/mrtrix3/cpp/core/command.h:114:5 (tckglobal+0xeb499) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
Thread T8 (tid=52093, running) created by main thread at:
#0 pthread_create <null> (tckglobal+0x6aeef) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void (*)()) <null> (libstdc++.so.6+0xeceb0) (BuildId: 753c6c8608b61d4e67be8f0c890e03e0aa046b8b)
#2 void std::_Construct<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_construct.h:119:25 (tckglobal+0x116e5f) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#3 void std::allocator_traits<std::allocator<void>>::construct<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::allocator<void>&, std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/alloc_traits.h:657:4 (tckglobal+0x116e5f)
#4 std::_Sp_counted_ptr_inplace<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:607:4 (tckglobal+0x116e5f)
#5 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*&, std::_Sp_alloc_shared_tag<std::allocator<void>>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:970:6 (tckglobal+0x116e5f)
#6 std::__shared_ptr<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::_Sp_alloc_shared_tag<std::allocator<void>>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:1713:14 (tckglobal+0x116e5f)
#7 std::shared_ptr<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::shared_ptr<std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::_Sp_alloc_shared_tag<std::allocator<void>>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:463:4 (tckglobal+0x116e5f)
#8 std::shared_ptr<std::enable_if<!is_array<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::value, std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::type> std::make_shared<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:1007:14 (tckglobal+0x116e5f)
#9 std::future<std::__invoke_result<std::decay<void (MR::DWI::Tractography::GT::MHSampler::*)()>::type, std::decay<MR::DWI::Tractography::GT::MHSampler*>::type>::type> std::async<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::launch, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:1812:18 (tckglobal+0x116e5f)
#10 MR::Thread::(anonymous namespace)::__multi_thread<MR::DWI::Tractography::GT::MHSampler>::__multi_thread(MR::DWI::Tractography::GT::MHSampler&, unsigned long, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/thread.h:147:23 (tckglobal+0xf969f) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#11 MR::Thread::(anonymous namespace)::__run<MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>>::operator()(MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>&, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/thread.h:229:78 (tckglobal+0xf969f)
#12 MR::Thread::(anonymous namespace)::__run<MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>>::type MR::Thread::run<MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>>(MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>&&, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/thread.h:362:10 (tckglobal+0xf969f)
#13 run() /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/tckglobal.cpp:332:3 (tckglobal+0xf969f)
#14 main /home/runner/work/mrtrix3/mrtrix3/cpp/core/command.h:114:5 (tckglobal+0xeb499) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
Thread T7 (tid=52092, running) created by main thread at:
#0 pthread_create <null> (tckglobal+0x6aeef) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void (*)()) <null> (libstdc++.so.6+0xeceb0) (BuildId: 753c6c8608b61d4e67be8f0c890e03e0aa046b8b)
#2 void std::_Construct<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_construct.h:119:25 (tckglobal+0x116e5f) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#3 void std::allocator_traits<std::allocator<void>>::construct<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::allocator<void>&, std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/alloc_traits.h:657:4 (tckglobal+0x116e5f)
#4 std::_Sp_counted_ptr_inplace<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:607:4 (tckglobal+0x116e5f)
#5 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>*&, std::_Sp_alloc_shared_tag<std::allocator<void>>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:970:6 (tckglobal+0x116e5f)
#6 std::__shared_ptr<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::_Sp_alloc_shared_tag<std::allocator<void>>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:1713:14 (tckglobal+0x116e5f)
#7 std::shared_ptr<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::shared_ptr<std::allocator<void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::_Sp_alloc_shared_tag<std::allocator<void>>, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:463:4 (tckglobal+0x116e5f)
#8 std::shared_ptr<std::enable_if<!is_array<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::value, std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>>::type> std::make_shared<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>>, void>, void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:1007:14 (tckglobal+0x116e5f)
#9 std::future<std::__invoke_result<std::decay<void (MR::DWI::Tractography::GT::MHSampler::*)()>::type, std::decay<MR::DWI::Tractography::GT::MHSampler*>::type>::type> std::async<void (MR::DWI::Tractography::GT::MHSampler::*)(), MR::DWI::Tractography::GT::MHSampler*>(std::launch, void (MR::DWI::Tractography::GT::MHSampler::*&&)(), MR::DWI::Tractography::GT::MHSampler*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/future:1812:18 (tckglobal+0x116e5f)
#10 MR::Thread::(anonymous namespace)::__multi_thread<MR::DWI::Tractography::GT::MHSampler>::__multi_thread(MR::DWI::Tractography::GT::MHSampler&, unsigned long, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/thread.h:146:25 (tckglobal+0xf939d) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
#11 MR::Thread::(anonymous namespace)::__run<MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>>::operator()(MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>&, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/thread.h:229:78 (tckglobal+0xf939d)
#12 MR::Thread::(anonymous namespace)::__run<MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>>::type MR::Thread::run<MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>>(MR::Thread::(anonymous namespace)::__Multi<MR::DWI::Tractography::GT::MHSampler>&&, std::basic_string_view<char, std::char_traits<char>>) /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/../core/thread.h:362:10 (tckglobal+0xf939d)
#13 run() /home/runner/work/mrtrix3/mrtrix3/cpp/cmd/tckglobal.cpp:332:3 (tckglobal+0xf939d)
#14 main /home/runner/work/mrtrix3/mrtrix3/cpp/core/command.h:114:5 (tckglobal+0xeb499) (BuildId: 9d53591b6064f6ae2ebab9adb66e7c85ced355a1)
SUMMARY: ThreadSanitizer: data race /home/runner/work/mrtrix3/mrtrix3/cpp/core/raw.h:180:26 in void MR::Raw::store_native<float>(float, void*, unsigned long)
Reactions are currently unavailable