fix(viz): crash when modifying some landmark properties
Description
Sight Viewer and similar applications crash when interacting a certain way with the landmarks, as described hereinafter.
Steps to reproduce
- Open Sight Viewer
- Load a volume
- Place a landmark
- Go to the landmark editor in the right panel
- Change the size
- Delete the landmarks
- Place a new landmark
- Crash
- Sometimes with
free(): double free detected in tcache 2
- Sometimes with
double free or corruption (fasttop)
- ...
- Sometimes with
Note that I'm also quite sure the size doesn't get updated either. But I'm unsure if it's the same issue or not.
Linux stacktrace
1 __pthread_kill_implementation pthread_kill.c 44 0x7ffff72969fc
2 __pthread_kill_internal pthread_kill.c 78 0x7ffff72969fc
3 __GI___pthread_kill pthread_kill.c 89 0x7ffff72969fc
4 __GI_raise raise.c 26 0x7ffff7242476
5 __GI_abort abort.c 79 0x7ffff72287f3
6 __libc_message libc_fatal.c 155 0x7ffff7289676
7 malloc_printerr malloc.c 5664 0x7ffff72a0cfc
8 _int_free malloc.c 4473 0x7ffff72a30ab
9 __GI___libc_free malloc.c 3391 0x7ffff72a5453
10 __gnu_cxx::new_allocator<std::array<double, 3ul>>::deallocate new_allocator.h 145 0x7fffcfcafd8d
11 std::allocator<std::array<double, 3ul>>::deallocate allocator.h 199 0x7fffcfc9d1b5
12 std::allocator_traits<std::allocator<std::array<double, 3ul>>>::deallocate alloc_traits.h 496 0x7fffcfc9d1b5
13 std::_Vector_base<std::array<double, 3ul>, std::allocator<std::array<double, 3ul>>>::_M_deallocate stl_vector.h 354 0x7fffcfc8ee30
14 std::_Vector_base<std::array<double, 3ul>, std::allocator<std::array<double, 3ul>>>::~_Vector_base stl_vector.h 335 0x7fffcfc82d61
15 std::vector<std::array<double, 3ul>>::~vector stl_vector.h 683 0x7fffcfc82db5
16 sight::data::landmarks::landmarks_group::~landmarks_group landmarks.hpp 56 0x7fffcfc7e1e2
17 sight::module::viz::scene3d_qt::adaptor::fiducials::point::create_and_pick_landmark point.cpp 1751 0x7fffcfc6a653
18 sight::module::viz::scene3d_qt::adaptor::fiducials::point::button_press_event point.cpp 2041 0x7fffcfc6bdd6
19 operator() layer.cpp 506 0x7fffd46ef6a1
20 std::__invoke_impl<void, sight::viz::scene3d::layer::interaction(sight::viz::scene3d::window_interactor::interaction_info)::<lambda(const sptr&)>&, const std::shared_ptr<sight::viz::scene3d::interactor::base>&> invoke.h 61 0x7fffd46ef6a1
21 std::__invoke_r<void, sight::viz::scene3d::layer::interaction(sight::viz::scene3d::window_interactor::interaction_info)::<lambda(const sptr&)>&, const std::shared_ptr<sight::viz::scene3d::interactor::base>&> invoke.h 111 0x7fffd46ef6a1
22 std::_Function_handler<void(const std::shared_ptr<sight::viz::scene3d::interactor::base>&), sight::viz::scene3d::layer::interaction(sight::viz::scene3d::window_interactor::interaction_info)::<lambda(const sptr&)>>::_M_invoke(const std::_Any_data &, const std::shared_ptr<sight::viz::scene3d::interactor::base> &) std_function.h 290 0x7fffd46ef6a1
23 std::function<void (std::shared_ptr<sight::viz::scene3d::interactor::base> const&)>::operator()(std::shared_ptr<sight::viz::scene3d::interactor::base> const&) const std_function.h 590 0x7fffd46f1c1d
24 sight::viz::scene3d::layer::for_all_interactors(std::function<void (std::shared_ptr<sight::viz::scene3d::interactor::base> const&)> const&&) layer.cpp 432 0x7fffd46f1c1d
25 sight::viz::scene3d::layer::interaction layer.cpp 503 0x7fffd46f30e2
26 std::__invoke_impl<void, void (sight::viz::scene3d::layer:: *&)(sight::viz::scene3d::window_interactor::interaction_info), sight::viz::scene3d::layer *&, sight::viz::scene3d::window_interactor::interaction_info> invoke.h 74 0x7fffd46f7c3e
27 std::__invoke<void (sight::viz::scene3d::layer:: *&)(sight::viz::scene3d::window_interactor::interaction_info), sight::viz::scene3d::layer *&, sight::viz::scene3d::window_interactor::interaction_info> invoke.h 96 0x7fffd46f7c3e
28 std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>::__call<void, sight::viz::scene3d::window_interactor::interaction_info&&, 0ul, 1ul>(std::tuple<sight::viz::scene3d::window_interactor::interaction_info&&>&&, std::_Index_tuple<0ul, 1ul>) functional 420 0x7fffd46f7c3e
29 std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>::operator()<sight::viz::scene3d::window_interactor::interaction_info, void>(sight::viz::scene3d::window_interactor::interaction_info&&) functional 503 0x7fffd46f7c3e
30 std::__invoke_impl<void, std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>&, sight::viz::scene3d::window_interactor::interaction_info>(std::__invoke_other, std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>&, sight::viz::scene3d::window_interactor::interaction_info&&) invoke.h 61 0x7fffd46f7c3e
31 std::__invoke_r<void, std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>&, sight::viz::scene3d::window_interactor::interaction_info>(std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>&, sight::viz::scene3d::window_interactor::interaction_info&&) invoke.h 111 0x7fffd46f7c3e
32 std::_Function_handler<void (sight::viz::scene3d::window_interactor::interaction_info), std::_Bind<void (sight::viz::scene3d::layer:: *(sight::viz::scene3d::layer *, std::_Placeholder<1>))(sight::viz::scene3d::window_interactor::interaction_info)>>::_M_invoke(std::_Any_data const&, sight::viz::scene3d::window_interactor::interaction_info&&) std_function.h 290 0x7fffd46f7c3e
33 std::function<void (sight::viz::scene3d::window_interactor::interaction_info)>::operator()(sight::viz::scene3d::window_interactor::interaction_info) const std_function.h 590 0x7fffd46f8b19
34 sight::core::com::slot<std::function<void (sight::viz::scene3d::window_interactor::interaction_info)>>::run(sight::viz::scene3d::window_interactor::interaction_info) const slot.hpp 78 0x7fffd46f8b19
35 sight::core::com::slot_run<void (sight::viz::scene3d::window_interactor::interaction_info)>::bind_run(sight::viz::scene3d::window_interactor::interaction_info) const::{lambda()#1}::operator()() const slot_run.hxx 47 0x7fffd46f7dc4
36 std::__invoke_impl<void, sight::core::com::slot_run<void (sight::viz::scene3d::window_interactor::interaction_info)>::bind_run(sight::viz::scene3d::window_interactor::interaction_info) const::{lambda()#1}&>(std::__invoke_other, sight::core::com::slot_run<void (sight::viz::scene3d::window_interactor::interaction_info)>::bind_run(sight::viz::scene3d::window_interactor::interaction_info) const::{lambda()#1}&) invoke.h 61 0x7fffd46f7dc4
37 std::__invoke_r<void, sight::core::com::slot_run<void (sight::viz::scene3d::window_interactor::interaction_info)>::bind_run(sight::viz::scene3d::window_interactor::interaction_info) const::{lambda()#1}&>(sight::core::com::slot_run<void (sight::viz::scene3d::window_interactor::interaction_info)>::bind_run(sight::viz::scene3d::window_interactor::interaction_info) const::{lambda()#1}&) invoke.h 111 0x7fffd46f7dc4
38 std::_Function_handler<void (), sight::core::com::slot_run<void (sight::viz::scene3d::window_interactor::interaction_info)>::bind_run(sight::viz::scene3d::window_interactor::interaction_info) const::{lambda()#1}>::_M_invoke(std::_Any_data const&) std_function.h 290 0x7fffd46f7dc4
39 std::function<void ()>::operator()() const std_function.h 590 0x7ffff7a93b54
40 sight::core::com::util::weak_call<sight::core::com::slot_base, void>::operator() weak_call.hpp 99 0x7ffff7a93256
41 std::__invoke_impl<void, sight::core::com::util::weak_call<sight::core::com::slot_base, void>&> invoke.h 61 0x7ffff7a92bbd
42 std::__invoke_r<void, sight::core::com::util::weak_call<sight::core::com::slot_base, void>&> invoke.h 111 0x7ffff7a92937
43 std::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}::operator()() const future 1468 0x7ffff7a92453
44 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>::operator()() const future 1409 0x7ffff7a94110
45 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::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>&>(std::__invoke_other, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>&) invoke.h 61 0x7ffff7a93bdb
46 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::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>&) invoke.h 116 0x7ffff7a934c5
47 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::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>>::_M_invoke(std::_Any_data const&) std_function.h 291 0x7ffff7a92c5b
48 std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const std_function.h 590 0x7ffff7a8f650
49 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 *) future 571 0x7ffff7a8eeec
50 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 *&&) invoke.h 74 0x7ffff7a90954
51 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 *&&) invoke.h 96 0x7ffff7a8ff77
52 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()#1}::operator()() const mutex 776 0x7ffff7a8f346
53 std::once_flag::_Prepare_execution::_Prepare_execution<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()#1}>(void (std::__future_base::_State_baseV2:: *&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> *, bool *))::{lambda()#1}::operator()() const mutex 712 0x7ffff7a8ffaf
54 std::once_flag::_Prepare_execution::_Prepare_execution<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()#1}>(void (std::__future_base::_State_baseV2:: *&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> *, bool *))::{lambda()#1}::_FUN() mutex 712 0x7ffff7a8ffc4
55 __pthread_once_slow pthread_once.c 116 0x7ffff7299ee8
56 __gthread_once gthr-default.h 700 0x7ffff7a8e498
57 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 *&&) mutex 783 0x7ffff7a8f3cb
58 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) future 411 0x7ffff7a8ebfb
59 std::__future_base::_Task_state<sight::core::com::util::weak_call<sight::core::com::slot_base, void>, std::allocator<int>, void ()>::_M_run() future 1471 0x7ffff7a924c8
60 std::packaged_task<void ()>::operator()() future 1604 0x7fffd4abbd35
61 sight::core::thread::task_handler<void ()>::operator()() const task_handler.hxx 45 0x7fffd4abae92
62 std::__invoke_impl<void, sight::core::thread::task_handler<void ()>&>(std::__invoke_other, sight::core::thread::task_handler<void ()>&) invoke.h 61 0x7fffd4ab9be4
63 std::__invoke_r<void, sight::core::thread::task_handler<void ()>&>(sight::core::thread::task_handler<void ()>&) invoke.h 111 0x7fffd4ab835c
64 std::_Function_handler<void (), sight::core::thread::task_handler<void ()>>::_M_invoke(std::_Any_data const&) std_function.h 290 0x7fffd4ab5dc4
65 std::function<void ()>::operator()() const std_function.h 590 0x7ffff18833b0
66 sight::ui::qt::worker_qt_task::~worker_qt_task worker_qt.cpp 56 0x7ffff1965212
67 sight::ui::qt::worker_qt_task::~worker_qt_task worker_qt.cpp 57 0x7ffff196524e
68 QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *) 0x7fffefebcf31
69 ?? 0x7fffeff13a67
70 g_main_context_dispatch 0x7ffff111bd3b
71 ?? 0x7ffff1171258
72 g_main_context_iteration 0x7ffff11193e3
73 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 0x7fffeff130b8
74 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) 0x7fffefeb875b
75 QCoreApplication::exec() 0x7fffefec0cf4
76 operator() worker_qt.cpp 266 0x7ffff1961ddd
77 std::__invoke_impl<int, sight::ui::qt::worker_qt::get_future()::<lambda()>&>(std::__invoke_other, struct {...} &) invoke.h 61 0x7ffff1963dd9
78 std::__invoke_r<std::any, sight::ui::qt::worker_qt::get_future()::<lambda()>&>(struct {...} &) invoke.h 114 0x7ffff1963b8d
79 operator() future 1469 0x7ffff196380d
80 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run()::<lambda()>, std::any>::operator()(void) const future 1386 0x7ffff196458b
81 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run()::<lambda()>, std::any>&>(std::__invoke_other, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run()::<lambda()>, std::any> &) invoke.h 61 0x7ffff1964401
82 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<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run()::<lambda()>, std::any>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run()::<lambda()>, std::any> &) invoke.h 116 0x7ffff19640e3
83 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<std::any>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run()::<lambda()>, std::any>>::_M_invoke(const std::_Any_data &) std_function.h 291 0x7ffff1963e6a
84 std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const std_function.h 590 0x7ffff1877d30
85 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 *) future 571 0x7ffff1873c88
86 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 *&&) invoke.h 74 0x7ffff7a90954
87 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 *&&) invoke.h 96 0x7ffff7a8ff77
88 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()#1}::operator()() const mutex 776 0x7ffff7a8f346
89 std::once_flag::_Prepare_execution::_Prepare_execution<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()#1}>(void (std::__future_base::_State_baseV2:: *&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> *, bool *))::{lambda()#1}::operator()() const mutex 712 0x7ffff7a8ffaf
90 std::once_flag::_Prepare_execution::_Prepare_execution<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()#1}>(void (std::__future_base::_State_baseV2:: *&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> *, bool *))::{lambda()#1}::_FUN() mutex 712 0x7ffff7a8ffc4
91 __pthread_once_slow pthread_once.c 116 0x7ffff7299ee8
92 __gthread_once gthr-default.h 700 0x7ffff7a8e498
93 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 *&&) mutex 783 0x7ffff7a8f3cb
94 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) future 411 0x7ffff1873997
95 std::__future_base::_Task_state<sight::ui::qt::worker_qt::get_future()::<lambda()>, std::allocator<int>, std::any()>::_M_run(void) future 1471 0x7ffff196389a
96 std::packaged_task<std::any ()>::operator()() future 1604 0x7ffff1965e09
97 sight::ui::qt::worker_qt::get_future worker_qt.cpp 272 0x7ffff19620d2
98 sight::module::ui::qt::plugin::run plugin.cpp 136 0x7ffff20832a6
99 std::__invoke_impl<int, int ( *&)() noexcept>(std::__invoke_other, int ( *&)() noexcept) invoke.h 61 0x7ffff208aa25
100 std::__invoke_r<int, int ( *&)() noexcept>(int ( *&)() noexcept) invoke.h 114 0x7ffff20894a2
... <More>
Functional specifications
If there is any change to the workflow, UX/UI design, screenshots, etc..., please describe it here.
Technical specifications
Details of the implementation of the fix.
Test plan
Describe how you will verify that the bug is fixed.