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

Segmentation fault using the Measure command #14076

Open
2 tasks done
furgo16 opened this issue May 17, 2024 · 9 comments
Open
2 tasks done

Segmentation fault using the Measure command #14076

furgo16 opened this issue May 17, 2024 · 9 comments
Labels
Bug This issue or PR is related to a bug Core Issue or PR touches core sections (App, Gui, Base) of FreeCAD

Comments

@furgo16
Copy link
Contributor

furgo16 commented May 17, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Problem description

Steps to reproduce:

  1. Open FreeCAD
  2. Create a new document
  3. Switch to Part workbench
  4. Create a cube
  5. Select the cube
  6. Click on the Measure command (Std_Measure)
  7. FreeCAD crashes (see stacktrace)

Full version info

OS: Ubuntu Core 22 (ubuntu:GNOME/ubuntu)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.37330 (Git) Snap 1022
Build type: Release
Branch: main
Hash: a094bf0df7e2b3e5c5b2e3b158a9040a6474892f
Python 3.10.12, Qt 5.15.10, Coin 4.0.0, Vtk 7.1.1, OCC 7.7.1
Installed mods: 
  * OpenTheme 2024.5.16
  * Curves 0.6.36
  * ezydxf
  * ExplodedAssembly
  * BillOfMaterials 0.0.8.2
  * Ondsel-Lens 2024.5.6.01

Subproject(s) affected?

Core

Anything else?

Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f268f0b3520]
#1  0x7f26921d28cb in Gui::DAG::Model::slotChangeObject(Gui::ViewProviderDocumentObject const&, App::Property const&) from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x13b
#2  0x7f2691edc0a9 in boost::signals2::detail::signal_impl<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(Gui::ViewProviderDocumentObject const&, App::Property const&) from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x1f9
#3  0x7f2691ebfa70 in Gui::Document::slotChangedObject(App::DocumentObject const&, App::Property const&) from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x200
#4  0x7f269147f6e9 in boost::signals2::detail::signal_impl<void (App::DocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(App::DocumentObject const&, App::Property const&) from /snap/freecad/1022/usr/lib/libFreeCADApp.so+0x1f9
#5  0x7f26914a60ca in App::DocumentObject::onChanged(App::Property const*) from /snap/freecad/1022/usr/lib/libFreeCADApp.so+0x12a
#6  0x7f26915e8425 in App::Property::hasSetValue() from /snap/freecad/1022/usr/lib/libFreeCADApp.so+0x145
#7  0x7f269166853d in App::PropertyString::setValue(char const*) from /snap/freecad/1022/usr/lib/libFreeCADApp.so+0x12d
#8  0x7f2650f6c127 in MeasureGui::ViewProviderMeasureBase::updateData(App::Property const*) from /snap/freecad/1022/usr/lib/MeasureGui.so+0x4b7
#9  0x7f26923d4af0 in Gui::ViewProviderDocumentObject::updateView() from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x100
#10  0x7f2650f6c6f7 in MeasureGui::ViewProviderMeasure::positionAnno(Measure::MeasureBase const*) from /snap/freecad/1022/usr/lib/MeasureGui.so+0x127
#11  0x7f2691ec03d4 in Gui::Document::slotNewObject(App::DocumentObject const&) from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x504
#12  0x7f26914825e1 in boost::signals2::detail::signal_impl<void (App::DocumentObject const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&)>, boost::signals2::mutex>::operator()(App::DocumentObject const&) from /snap/freecad/1022/usr/lib/libFreeCADApp.so+0x1d1
#13  0x7f26914402a9 in App::Document::addObject(char const*, char const*, bool, char const*, bool) from /snap/freecad/1022/usr/lib/libFreeCADApp.so+0x299
#14  0x7f26920ac5aa in Gui::TaskMeasure::update() from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x8fa
#15  0x7f268f80c39e in QObject::event(QEvent*) from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2ae
#16  0x7f2690378763 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x83
#17  0x7f2691f23798 in Gui::GUIApplication::notify(QObject*, QEvent*) from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x98
#18  0x7f268f7dee4a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x13a
#19  0x7f268f7e1f47 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x187
#20  /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x316ce7) [0x7f268f838ce7]
#21  /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x26b) [0x7f268d27bd3b]
#22  /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0xab258) [0x7f268d2d1258]
#23  /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33) [0x7f268d2793e3]
#24  0x7f268f838338 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x68
#25  0x7f268f7dd76b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12b
#26  0x7f268f7e5d14 in QCoreApplication::exec() from /snap/freecad/1022/kf5/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x94
#27  0x7f2691e5e2d4 in Gui::Application::runApplication() from /snap/freecad/1022/usr/lib/libFreeCADGui.so+0x6c4
#28  /snap/freecad/1022/usr/bin/FreeCAD(+0xa709) [0x55b3c674d709]
#29  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f268f09ad90]
#30  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f268f09ae40]
#31  /snap/freecad/1022/usr/bin/FreeCAD(+0xaac5) [0x55b3c674dac5]

Code of Conduct

  • I agree to follow this project's Code of Conduct
@maxwxyz
Copy link
Collaborator

maxwxyz commented May 17, 2024

I cannot reproduce on Windows.
@hlorus FYI

@maxwxyz maxwxyz added Core Issue or PR touches core sections (App, Gui, Base) of FreeCAD Missing: confirmation Missing confirmation from other testers labels May 17, 2024
@xtemp09
Copy link
Contributor

xtemp09 commented May 17, 2024

I cannot reproduce.

OS: Ubuntu 22.04.3 LTS (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.37303 (Git)
Build type: Debug
Branch: main
Hash: 869cb1f83b5f92ee134dafde46c9c5e0dceb8889
Python 3.10.12, Qt 5.15.12, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.1
Locale: English/United States (en_US)

@xtemp09
Copy link
Contributor

xtemp09 commented May 18, 2024

Staring at the backtrace, I noticed Gui::DAG::Model::slotChangeObject. I activated DAGView and managed to reproduce the crash. This issue is connected to #12163.

Here is the backtrace for Linux.

Backtrace
Process 2557 stopped
* thread #1, name = 'FreeCAD', stop reason = signal SIGABRT
    frame #0: 0x00007ffff32969fc libc.so.6`__GI___pthread_kill at pthread_kill.c:44:76
(lldb) bt
* thread #1, name = 'FreeCAD', stop reason = signal SIGABRT
  * frame #0: 0x00007ffff32969fc libc.so.6`__GI___pthread_kill at pthread_kill.c:44:76
    frame #1: 0x00007ffff32969b0 libc.so.6`__GI___pthread_kill [inlined] __pthread_kill_internal(signo=6, threadid=140737256995456) at pthread_kill.c:78:10
    frame #2: 0x00007ffff32969b0 libc.so.6`__GI___pthread_kill(threadid=140737256995456, signo=6) at pthread_kill.c:89:10
    frame #3: 0x00007ffff3242476 libc.so.6`__GI_raise(sig=6) at raise.c:26:13
    frame #4: 0x00007ffff32287f3 libc.so.6`__GI_abort at abort.c:79:7
    frame #5: 0x00007ffff322871b libc.so.6`__assert_fail_base.cold at assert.c:92:3
    frame #6: 0x00007ffff3239e96 libc.so.6`__GI___assert_fail(assertion="it != list.end()", file="/home/xtemp09/Downloads/FreeCAD/freecad-source/src/Gui/DAGView/DAGModelGraph.cpp", line=81, function="const Gui::DAG::GraphLinkRecord& Gui::DAG::findRecord(const Gui::ViewProviderDocumentObject*, const GraphLinkContainer&)") at assert.c:101:3
    frame #7: 0x00007ffff6f1ff30 libFreeCADGui.so`Gui::DAG::findRecord(VPDObjectIn=<unavailable>, containerIn=0x00005555599f6b30) at DAGModelGraph.cpp:81:3
    frame #8: 0x00007ffff6f1365a libFreeCADGui.so`Gui::DAG::Model::slotChangeObject(this=0x000055555833ad80, VPDObjectIn=0x000055555a6ef2b0, propertyIn=0x000055555a6eed88) at DAGModel.cpp:311:47
    frame #9: 0x00007ffff6f1c268 libFreeCADGui.so`void std::__invoke_impl<void, void (Gui::DAG::Model::*&)(Gui::ViewProviderDocumentObject const&, App::Property const&), Gui::DAG::Model*&, Gui::ViewProviderDocumentObject const&, App::Property const&>((null)=__invoke_memfun_deref @ 0x00007fffffffad50, __f=<unavailable>, __t=<unavailable>, (null)=<unavailable>, (null)=<unavailable>) at invoke.h:74:46
    frame #10: 0x00007ffff6f1c290 libFreeCADGui.so`void std::_Bind<void (Gui::DAG::Model::* (Gui::DAG::Model*, std::_Placeholder<1>, std::_Placeholder<2>))(Gui::ViewProviderDocumentObject const&, App::Property const&)>::operator()<Gui::ViewProviderDocumentObject const&, App::Property const&, void>(Gui::ViewProviderDocumentObject const&, App::Property const&) [inlined] std::__invoke_result<void (Gui::DAG::Model::*&)(Gui::ViewProviderDocumentObject const&, App::Property const&), Gui::DAG::Model*&, Gui::ViewProviderDocumentObject const&, App::Property const&>::type std::__invoke<void (Gui::DAG::Model::*&)(Gui::ViewProviderDocumentObject const&, App::Property const&), Gui::DAG::Model*&, Gui::ViewProviderDocumentObject const&, App::Property const&>((null)=0x000055555a6eed88, (null)=0x000055555a6ef2b0, (null)=<unavailable>, __fn=<unavailable>) at invoke.h:96:40
    frame #11: 0x00007ffff6f1c285 libFreeCADGui.so`void std::_Bind<void (Gui::DAG::Model::* (Gui::DAG::Model*, std::_Placeholder<1>, std::_Placeholder<2>))(Gui::ViewProviderDocumentObject const&, App::Property const&)>::operator()<Gui::ViewProviderDocumentObject const&, App::Property const&, void>(Gui::ViewProviderDocumentObject const&, App::Property const&) [inlined] void std::_Bind<void (Gui::DAG::Model::* (Gui::DAG::Model*, std::_Placeholder<1>, std::_Placeholder<2>))(Gui::ViewProviderDocumentObject const&, App::Property const&)>::__call<void, Gui::ViewProviderDocumentObject const&, App::Property const&, 0ul, 1ul, 2ul>((null)=<unavailable>, __args=0x00007fffffffad50, this=<unavailable>) at functional:506:24
    frame #12: 0x00007ffff6f1c281 libFreeCADGui.so`void std::_Bind<void (Gui::DAG::Model::* (Gui::DAG::Model*, std::_Placeholder<1>, std::_Placeholder<2>))(Gui::ViewProviderDocumentObject const&, App::Property const&)>::operator()<Gui::ViewProviderDocumentObject const&, App::Property const&, void>(this=<unavailable>, (null)=0x000055555a6ef2b0, (null)=0x000055555a6eed88) at functional:591:32
    frame #13: 0x00007ffff6f1c29f libFreeCADGui.so`boost::detail::function::void_function_obj_invoker2<std::_Bind<void (Gui::DAG::Model::* (Gui::DAG::Model*, std::_Placeholder<1>, std::_Placeholder<2>))(Gui::ViewProviderDocumentObject const&, App::Property const&)>, void, Gui::ViewProviderDocumentObject const&, App::Property const&>::invoke(function_obj_ptr=<unavailable>, a0=<unavailable>, a1=<unavailable>) at function_template.hpp:158:11
    frame #14: 0x00007ffff6cdb8a7 libFreeCADGui.so`boost::function2<void, Gui::ViewProviderDocumentObject const&, App::Property const&>::operator()(this=<unavailable>, a0=<unavailable>, a1=<unavailable>) const at function_template.hpp:763:28
    frame #15: 0x00007ffff6cdb969 libFreeCADGui.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>> const&) const [inlined] boost::signals2::detail::void_type boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::m_invoke<boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>, 0u, 1u, Gui::ViewProviderDocumentObject const&, App::Property const&>((null)=0x0000000000000000, args=0x00007fffffffb020, (null)=<unavailable>, func=<unavailable>, this=<unavailable>) const at variadic_slot_invoker.hpp:105:15
    frame #16: 0x00007ffff6cdb959 libFreeCADGui.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>> const&) const [inlined] boost::signals2::detail::void_type boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::operator()<boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>, Gui::ViewProviderDocumentObject const&, App::Property const&, 2ul>((null)=<unavailable>, args=0x00007fffffffb020, func=<unavailable>, this=<unavailable>) const at variadic_slot_invoker.hpp:90:32
    frame #17: 0x00007ffff6cdb959 libFreeCADGui.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(this=0x00007fffffffb020, connectionBody=<unavailable>) const at variadic_slot_invoker.hpp:133:53
    frame #18: 0x00007ffff6cdb99d libFreeCADGui.so`boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>::dereference(this=0x00007fffffffae10) const at slot_call_iterator.hpp:110:43
    frame #19: 0x00007ffff6ce11a2 libFreeCADGui.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>) const [inlined] boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>::reference boost::iterators::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(f=0x00007fffffffae10) at iterator_facade.hpp:550:31
    frame #20: 0x00007ffff6ce1199 libFreeCADGui.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>) const [inlined] boost::iterators::detail::iterator_facade_base<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>, boost::signals2::detail::void_type, boost::iterators::single_pass_traversal_tag, boost::signals2::detail::void_type const&, long, false, false>::operator*(this=0x00007fffffffae10) const at iterator_facade.hpp:656:53
    frame #21: 0x00007ffff6ce1199 libFreeCADGui.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(this=<unavailable>, first=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const Gui::ViewProviderDocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffae10, last=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const Gui::ViewProviderDocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffae30) const at optional_last_value.hpp:57:13
    frame #22: 0x00007ffff6ce141c libFreeCADGui.so`boost::signals2::detail::signal_impl<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(Gui::ViewProviderDocumentObject const&, App::Property const&) [inlined] void boost::signals2::detail::combiner_invoker<void>::operator()<boost::signals2::optional_last_value<void>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, Gui::ViewProviderDocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(last=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const Gui::ViewProviderDocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffaef0, first=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const Gui::ViewProviderDocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const Gui::ViewProviderDocumentObject&, const App::Property&), boost::function<void(const Gui::ViewProviderDocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffaed0, combiner=<unavailable>, this=<unavailable>) const at result_type_wrapper.hpp:64:19
    frame #23: 0x00007ffff6ce13ec libFreeCADGui.so`boost::signals2::detail::signal_impl<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(this=<unavailable>, args#0=0x000055555a6ef2b0, args#1=0x000055555a6eed88) at signal_template.hpp:243:13
    frame #24: 0x00007ffff6ce14f2 libFreeCADGui.so`boost::signals2::signal<void (Gui::ViewProviderDocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, Gui::ViewProviderDocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(this=<unavailable>, args#0=0x000055555a6ef2b0, args#1=0x000055555a6eed88) at signal_template.hpp:722:25
    frame #25: 0x00007ffff6cc15e5 libFreeCADGui.so`Gui::Document::slotChangedObject(this=0x0000555555ea4790, Obj=<unavailable>, Prop=0x000055555a6eed88) at Document.cpp:828:32
    frame #26: 0x00007ffff6cd74df libFreeCADGui.so`void std::__invoke_impl<void, void (Gui::Document::*&)(App::DocumentObject const&, App::Property const&), Gui::Document*&, App::DocumentObject const&, App::Property const&>((null)=__invoke_memfun_deref @ 0x00007fffffffb2f0, __f=<unavailable>, __t=<unavailable>, (null)=<unavailable>, (null)=<unavailable>) at invoke.h:74:46
    frame #27: 0x00007ffff6cd7508 libFreeCADGui.so`void std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>, std::_Placeholder<2>))(App::DocumentObject const&, App::Property const&)>::operator()<App::DocumentObject const&, App::Property const&, void>(App::DocumentObject const&, App::Property const&) [inlined] std::__invoke_result<void (Gui::Document::*&)(App::DocumentObject const&, App::Property const&), Gui::Document*&, App::DocumentObject const&, App::Property const&>::type std::__invoke<void (Gui::Document::*&)(App::DocumentObject const&, App::Property const&), Gui::Document*&, App::DocumentObject const&, App::Property const&>((null)=0x000055555a6eed88, (null)=0x000055555a6eeca0, (null)=<unavailable>, __fn=<unavailable>) at invoke.h:96:40
    frame #28: 0x00007ffff6cd74fd libFreeCADGui.so`void std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>, std::_Placeholder<2>))(App::DocumentObject const&, App::Property const&)>::operator()<App::DocumentObject const&, App::Property const&, void>(App::DocumentObject const&, App::Property const&) [inlined] void std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>, std::_Placeholder<2>))(App::DocumentObject const&, App::Property const&)>::__call<void, App::DocumentObject const&, App::Property const&, 0ul, 1ul, 2ul>((null)=<unavailable>, __args=0x00007fffffffb2f0, this=<unavailable>) at functional:506:24
    frame #29: 0x00007ffff6cd74f9 libFreeCADGui.so`void std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>, std::_Placeholder<2>))(App::DocumentObject const&, App::Property const&)>::operator()<App::DocumentObject const&, App::Property const&, void>(this=<unavailable>, (null)=0x000055555a6eeca0, (null)=0x000055555a6eed88) at functional:591:32
    frame #30: 0x00007ffff6cd7517 libFreeCADGui.so`boost::detail::function::void_function_obj_invoker2<std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>, std::_Placeholder<2>))(App::DocumentObject const&, App::Property const&)>, void, App::DocumentObject const&, App::Property const&>::invoke(function_obj_ptr=<unavailable>, a0=<unavailable>, a1=<unavailable>) at function_template.hpp:158:11
    frame #31: 0x00007ffff5eb5ba3 libFreeCADApp.so`boost::function2<void, App::DocumentObject const&, App::Property const&>::operator()(this=<unavailable>, a0=<unavailable>, a1=<unavailable>) const at function_template.hpp:763:28
    frame #32: 0x00007ffff5eb5c65 libFreeCADApp.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>> const&) const [inlined] boost::signals2::detail::void_type boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::m_invoke<boost::function<void (App::DocumentObject const&, App::Property const&)>, 0u, 1u, App::DocumentObject const&, App::Property const&>((null)=0x0000000000000000, args=0x00007fffffffb5c0, (null)=<unavailable>, func=<unavailable>, this=<unavailable>) const at variadic_slot_invoker.hpp:105:15
    frame #33: 0x00007ffff5eb5c55 libFreeCADApp.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>> const&) const [inlined] boost::signals2::detail::void_type boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::operator()<boost::function<void (App::DocumentObject const&, App::Property const&)>, App::DocumentObject const&, App::Property const&, 2ul>((null)=<unavailable>, args=0x00007fffffffb5c0, func=<unavailable>, this=<unavailable>) const at variadic_slot_invoker.hpp:90:32
    frame #34: 0x00007ffff5eb5c55 libFreeCADApp.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(this=0x00007fffffffb5c0, connectionBody=<unavailable>) const at variadic_slot_invoker.hpp:133:53
    frame #35: 0x00007ffff5eb5c99 libFreeCADApp.so`boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>::dereference(this=0x00007fffffffb3b0) const at slot_call_iterator.hpp:110:43
    frame #36: 0x00007ffff5ed0f16 libFreeCADApp.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>) const [inlined] boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>::reference boost::iterators::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(f=0x00007fffffffb3b0) at iterator_facade.hpp:550:31
    frame #37: 0x00007ffff5ed0f0d libFreeCADApp.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>) const [inlined] boost::iterators::detail::iterator_facade_base<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>, boost::signals2::detail::void_type, boost::iterators::single_pass_traversal_tag, boost::signals2::detail::void_type const&, long, false, false>::operator*(this=0x00007fffffffb3b0) const at iterator_facade.hpp:656:53
    frame #38: 0x00007ffff5ed0f0d libFreeCADApp.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(this=<unavailable>, first=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffb3b0, last=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffb3d0) const at optional_last_value.hpp:57:13
    frame #39: 0x00007ffff5ed1190 libFreeCADApp.so`boost::signals2::detail::signal_impl<void (App::DocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(App::DocumentObject const&, App::Property const&) [inlined] void boost::signals2::detail::combiner_invoker<void>::operator()<boost::signals2::optional_last_value<void>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&, App::Property const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&, App::Property const&), boost::function<void (App::DocumentObject const&, App::Property const&)>>, boost::signals2::mutex>>>(last=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffb490, first=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&, const App::Property&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&, const App::Property&), boost::function<void(const App::DocumentObject&, const App::Property&)> >, boost::signals2::mutex> > @ 0x00007fffffffb470, combiner=<unavailable>, this=<unavailable>) const at result_type_wrapper.hpp:64:19
    frame #40: 0x00007ffff5ed1160 libFreeCADApp.so`boost::signals2::detail::signal_impl<void (App::DocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(this=<unavailable>, args#0=0x000055555a6eeca0, args#1=0x000055555a6eed88) at signal_template.hpp:243:13
    frame #41: 0x00007ffff5ed1266 libFreeCADApp.so`boost::signals2::signal<void (App::DocumentObject const&, App::Property const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&, App::Property const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&, App::Property const&)>, boost::signals2::mutex>::operator()(this=<unavailable>, args#0=0x000055555a6eeca0, args#1=0x000055555a6eed88) at signal_template.hpp:722:25
    frame #42: 0x00007ffff5e75308 libFreeCADApp.so`App::Document::onChangedProperty(this=<unavailable>, Who=0x000055555a6eeca0, What=0x000055555a6eed88) at Document.cpp:775:24
    frame #43: 0x00007ffff5ee445e libFreeCADApp.so`App::DocumentObject::onChanged(this=0x000055555a6eeca0, prop=0x000055555a6eed88) at DocumentObject.cpp:822:33
    frame #44: 0x00007fffdc078e4a Measure.so`App::FeaturePythonT<Measure::MeasureBase>::onChanged(this=0x000055555a6eeca0, prop=0x000055555a6eed88) at FeaturePython.h:340:28
    frame #45: 0x00007ffff5fdb59c libFreeCADApp.so`App::Property::hasSetValue(this=0x000055555a6eed88) at Property.cpp:230:26
    frame #46: 0x00007ffff602f2c3 libFreeCADApp.so`App::PropertyString::setValue(this=0x000055555a6eed88, newLabel="Center_of_Mass: ") at PropertyStandard.cpp:1413:16
    frame #47: 0x00007ffff6025ffa libFreeCADApp.so`App::PropertyString::setValue(this=<unavailable>, sString=<unavailable>) at PropertyStandard.cpp:1424:13
    frame #48: 0x00007fffbdcff9a0 MeasureGui.so`MeasureGui::ViewProviderMeasureBase::updateData(this=0x000055555a6ef2b0, prop=0x000055555a6eed88) at ViewProviderMeasureBase.cpp:310:28
    frame #49: 0x00007ffff70914c4 libFreeCADGui.so`Gui::ViewProviderDocumentObject::updateView(this=0x000055555a6ef2b0) at ViewProviderDocumentObject.cpp:324:19
    frame #50: 0x00007fffbdcffc45 MeasureGui.so`MeasureGui::ViewProviderMeasure::positionAnno(this=0x000055555a6ef2b0, measureObject=<unavailable>) at ViewProviderMeasureBase.cpp:555:15
    frame #51: 0x00007fffbdcff7a7 MeasureGui.so`MeasureGui::ViewProviderMeasureBase::attach(this=0x000055555a6ef2b0, pcObj=0x000055555a6eeca0) at ViewProviderMeasureBase.cpp:271:17
    frame #52: 0x00007ffff6cc2725 libFreeCADGui.so`Gui::Document::slotNewObject(this=0x0000555555ea4790, Obj=0x000055555a6eeca0) at Document.cpp:692:31
    frame #53: 0x00007ffff6cd748b libFreeCADGui.so`void std::__invoke_impl<void, void (Gui::Document::*&)(App::DocumentObject const&), Gui::Document*&, App::DocumentObject const&>((null)=__invoke_memfun_deref @ 0x00007fffffffc2a0, __f=<unavailable>, __t=<unavailable>, (null)=<unavailable>) at invoke.h:74:46
    frame #54: 0x00007ffff6cd74a9 libFreeCADGui.so`boost::detail::function::void_function_obj_invoker1<std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>))(App::DocumentObject const&)>, void, App::DocumentObject const&>::invoke(boost::detail::function::function_buffer&, App::DocumentObject const&) [inlined] std::__invoke_result<void (Gui::Document::*&)(App::DocumentObject const&), Gui::Document*&, App::DocumentObject const&>::type std::__invoke<void (Gui::Document::*&)(App::DocumentObject const&), Gui::Document*&, App::DocumentObject const&>((null)=0x000055555a6eeca0, (null)=<unavailable>, __fn=<unavailable>) at invoke.h:96:40
    frame #55: 0x00007ffff6cd74a4 libFreeCADGui.so`boost::detail::function::void_function_obj_invoker1<std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>))(App::DocumentObject const&)>, void, App::DocumentObject const&>::invoke(boost::detail::function::function_buffer&, App::DocumentObject const&) [inlined] void std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>))(App::DocumentObject const&)>::__call<void, App::DocumentObject const&, 0ul, 1ul>((null)=<unavailable>, __args=0x00007fffffffc2a8, this=<unavailable>) at functional:506:24
    frame #56: 0x00007ffff6cd74a0 libFreeCADGui.so`boost::detail::function::void_function_obj_invoker1<std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>))(App::DocumentObject const&)>, void, App::DocumentObject const&>::invoke(boost::detail::function::function_buffer&, App::DocumentObject const&) [inlined] void std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>))(App::DocumentObject const&)>::operator()<App::DocumentObject const&, void>((null)=0x000055555a6eeca0, this=<unavailable>) at functional:591:32
    frame #57: 0x00007ffff6cd749c libFreeCADGui.so`boost::detail::function::void_function_obj_invoker1<std::_Bind<void (Gui::Document::* (Gui::Document*, std::_Placeholder<1>))(App::DocumentObject const&)>, void, App::DocumentObject const&>::invoke(function_obj_ptr=<unavailable>, a0=0x000055555a6eeca0) at function_template.hpp:158:11
    frame #58: 0x00007ffff5eb6633 libFreeCADApp.so`boost::function1<void, App::DocumentObject const&>::operator()(this=<unavailable>, a0=<unavailable>) const at function_template.hpp:763:28
    frame #59: 0x00007ffff5eb66f1 libFreeCADApp.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>> const&) const [inlined] boost::signals2::detail::void_type boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::m_invoke<boost::function<void (App::DocumentObject const&)>, 0u, App::DocumentObject const&>((null)=0x0000000000000000, args=0x00007fffffffc560, (null)=<unavailable>, func=<unavailable>, this=<unavailable>) const at variadic_slot_invoker.hpp:105:15
    frame #60: 0x00007ffff5eb66e5 libFreeCADApp.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>> const&) const [inlined] boost::signals2::detail::void_type boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::operator()<boost::function<void (App::DocumentObject const&)>, App::DocumentObject const&, 1ul>((null)=<unavailable>, args=0x00007fffffffc560, func=<unavailable>, this=<unavailable>) const at variadic_slot_invoker.hpp:90:32
    frame #61: 0x00007ffff5eb66e5 libFreeCADApp.so`boost::signals2::detail::void_type boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(this=0x00007fffffffc560, connectionBody=<unavailable>) const at variadic_slot_invoker.hpp:133:53
    frame #62: 0x00007ffff5eb6725 libFreeCADApp.so`boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>::dereference(this=0x00007fffffffc350) const at slot_call_iterator.hpp:110:43
    frame #63: 0x00007ffff5ed3e52 libFreeCADApp.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>) const [inlined] boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>::reference boost::iterators::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(f=0x00007fffffffc350) at iterator_facade.hpp:550:31
    frame #64: 0x00007ffff5ed3e49 libFreeCADApp.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>) const [inlined] boost::iterators::detail::iterator_facade_base<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>, boost::signals2::detail::void_type, boost::iterators::single_pass_traversal_tag, boost::signals2::detail::void_type const&, long, false, false>::operator*(this=0x00007fffffffc350) const at iterator_facade.hpp:656:53
    frame #65: 0x00007ffff5ed3e49 libFreeCADApp.so`void boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(this=<unavailable>, first=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > @ 0x00007fffffffc350, last=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > @ 0x00007fffffffc370) const at optional_last_value.hpp:57:13
    frame #66: 0x00007ffff5ed40bf libFreeCADApp.so`boost::signals2::detail::signal_impl<void (App::DocumentObject const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&)>, boost::signals2::mutex>::operator()(App::DocumentObject const&) [inlined] void boost::signals2::detail::combiner_invoker<void>::operator()<boost::signals2::optional_last_value<void>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, App::DocumentObject const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int>>, boost::signals2::slot<void (App::DocumentObject const&), boost::function<void (App::DocumentObject const&)>>, boost::signals2::mutex>>>(last=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > @ 0x00007fffffffc430, first=slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, const App::DocumentObject&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void(const App::DocumentObject&), boost::function<void(const App::DocumentObject&)> >, boost::signals2::mutex> > @ 0x00007fffffffc410, combiner=<unavailable>, this=<unavailable>) const at result_type_wrapper.hpp:64:19
    frame #67: 0x00007ffff5ed408f libFreeCADApp.so`boost::signals2::detail::signal_impl<void (App::DocumentObject const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&)>, boost::signals2::mutex>::operator()(this=<unavailable>, args#0=0x000055555a6eeca0) at signal_template.hpp:243:13
    frame #68: 0x00007ffff5ed418e libFreeCADApp.so`boost::signals2::signal<void (App::DocumentObject const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&)>, boost::signals2::mutex>::operator()(this=<unavailable>, args#0=0x000055555a6eeca0) at signal_template.hpp:722:25
    frame #69: 0x00007ffff5e756ab libFreeCADApp.so`App::Document::addObject(this=0x0000555558c1bfc0, sType=<unavailable>, pObjectName="Center of Mass", isNew=true, viewType=<unavailable>, isPartial=false) at Document.cpp:3264:20
    frame #70: 0x00007ffff6e23f83 libFreeCADGui.so`Gui::TaskMeasure::update(this=0x000055555a665610) at TaskMeasure.cpp:220:48
    frame #71: 0x00007ffff6e243a5 libFreeCADGui.so`Gui::TaskMeasure::invoke(this=<unavailable>) at TaskMeasure.cpp:272:11
    frame #72: 0x00007ffff6e250e8 libFreeCADGui.so`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Gui::TaskMeasure::*)()>::call(f=<unavailable>, o=<unavailable>, arg=<unavailable>) at qobjectdefs_impl.h:152:20
    frame #73: 0x00007ffff6e25126 libFreeCADGui.so`QtPrivate::QSlotObject<void (Gui::TaskMeasure::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] void QtPrivate::FunctionPointer<void (Gui::TaskMeasure::*)()>::call<QtPrivate::List<>, void>(arg=<unavailable>, o=<unavailable>, f=<unavailable>) at qobjectdefs_impl.h:185:95
    frame #74: 0x00007ffff6e2511e libFreeCADGui.so`QtPrivate::QSlotObject<void (Gui::TaskMeasure::*)(), QtPrivate::List<>, void>::impl(which=<unavailable>, this_=<unavailable>, r=<unavailable>, a=<unavailable>, ret=<unavailable>) at qobjectdefs_impl.h:418:49
    frame #75: 0x00007ffff3ed3364 libQt5Core.so.5`QMetaCallEvent::placeMetaCall(QObject*) [inlined] QtPrivate::QSlotObjectBase::call(a=<unavailable>, r=0x000055555a665610, this=<unavailable>) at qobjectdefs_impl.h:398:57
    frame #76: 0x00007ffff3ed3350 libQt5Core.so.5`QMetaCallEvent::placeMetaCall(this=0x000055555a6c20e0, object=0x000055555a665610) at qobject.cpp:633:25
    frame #77: 0x00007ffff3edaefe libQt5Core.so.5`QObject::event(this=0x000055555a665610, e=0x000055555a6c20e0) at qobject.cpp:1347:31
    frame #78: 0x00007ffff4ae1813 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=0x000055555593a2e0, receiver=0x000055555a665610, e=0x000055555a6c20e0) at qapplication.cpp:3640:31
    frame #79: 0x00007ffff4aea1be libQt5Widgets.so.5`QApplication::notify(this=0x00007fffffffd7c0, receiver=0x000055555a665610, e=0x000055555a6c20e0) at qapplication.cpp:2980:31
    frame #80: 0x00007ffff6d16222 libFreeCADGui.so`Gui::GUIApplication::notify(this=0x00007fffffffd7c0, receiver=0x000055555a665610, event=0x000055555a6c20e0) at GuiApplication.cpp:83:40
    frame #81: 0x00007ffff3e9ef19 libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x000055555a665610, event=0x000055555a6c20e0) at qcoreapplication.cpp:1064:24
    frame #82: 0x00007ffff3e9f196 libQt5Core.so.5`QCoreApplication::sendEvent(receiver=<unavailable>, event=<unavailable>) at qcoreapplication.cpp:1462:27
    frame #83: 0x00007ffff3ea2feb libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000, event_type=0, data=0x000055555570e850) at qcoreapplication.cpp:1821:36
    frame #84: 0x00007ffff3ea3303 libQt5Core.so.5`QCoreApplication::sendPostedEvents(receiver=0x0000000000000000, event_type=0) at qcoreapplication.cpp:1680:46
    frame #85: 0x00007ffff3f0c6af libQt5Core.so.5`postEventSourceDispatch(s=0x0000555555876230, (null)=<unavailable>, (null)=<unavailable>) at qeventdispatcher_glib.cpp:277:39
    frame #86: 0x00007ffff311bd3b libglib-2.0.so.0`g_main_context_dispatch + 619
    frame #87: 0x00007ffff31712b8 libglib-2.0.so.0`___lldb_unnamed_symbol2709 + 488
    frame #88: 0x00007ffff31193e3 libglib-2.0.so.0`g_main_context_iteration + 51
    frame #89: 0x00007ffff3f0bfbf libQt5Core.so.5`QEventDispatcherGlib::processEvents(this=0x0000555555873b60, flags=(i = 36)) at qeventdispatcher_glib.cpp:423:43
    frame #90: 0x00007fffee068826 libQt5XcbQpa.so.5`QXcbGlibEventDispatcher::processEvents(this=<unavailable>, flags=<unavailable>) at qxcbeventdispatcher.cpp:143:47
    frame #91: 0x00007ffff3e9c89b libQt5Core.so.5`QEventLoop::processEvents(this=0x00007fffffffd2c0, flags=<unavailable>) at qeventloop.cpp:142:68
    frame #92: 0x00007ffff3e9cf3c libQt5Core.so.5`QEventLoop::exec(this=0x00007fffffffd2c0, flags=(i = 0)) at qeventloop.cpp:235:22
    frame #93: 0x00007ffff3ea78df libQt5Core.so.5`QCoreApplication::exec() at qcoreapplication.cpp:1375:36
    frame #94: 0x00007ffff4224a24 libQt5Gui.so.5`QGuiApplication::exec() at qguiapplication.cpp:1870:34
    frame #95: 0x00007ffff4ae177d libQt5Widgets.so.5`QApplication::exec() at qapplication.cpp:2832:33
    frame #96: 0x00007ffff6c6993b libFreeCADGui.so`(anonymous namespace)::tryRunEventLoop(mainApp=0x00007fffffffd7c0) at Application.cpp:2042:23
    frame #97: 0x00007ffff6c69c04 libFreeCADGui.so`(anonymous namespace)::runEventLoop(mainApp=0x00007fffffffd7c0) at Application.cpp:2062:24
    frame #98: 0x00007ffff6c6da7e libFreeCADGui.so`Gui::Application::runApplication() at Application.cpp:2139:17
    frame #99: 0x000055555556a3a5 FreeCAD`main(argc=<unavailable>, argv=<unavailable>) at MainGui.cpp:278:45
    frame #100: 0x00007ffff3229d90 libc.so.6`__libc_start_call_main(main=(FreeCAD`main at MainGui.cpp:105:1), argc=1, argv=0x00007fffffffdd98) at libc_start_call_main.h:58:16
    frame #101: 0x00007ffff3229e40 libc.so.6`__libc_start_main_impl(main=(FreeCAD`main at MainGui.cpp:105:1), argc=1, argv=0x00007fffffffdd98, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffdd88) at libc-start.c:392:3
    frame #102: 0x0000555555569c05 FreeCAD`_start + 37
(lldb)
OS: Ubuntu 22.04.3 LTS (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.37303 (Git)
Build type: Debug
Branch: main
Hash: 869cb1f83b5f92ee134dafde46c9c5e0dceb8889
Python 3.10.12, Qt 5.15.12, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.1
Locale: English/United States (en_US)

One may notice that it is failing assert causes the segfault.

@furgo16
Copy link
Contributor Author

furgo16 commented May 19, 2024

At this point, I cannot use the Measure tool. It crashes FreeCAD every time I click on it. Let me know if I can provide more info or help testing.

@furgo16
Copy link
Contributor Author

furgo16 commented May 19, 2024

As a workaround, disabling DAGView as per https://wiki.freecad.org/DAG_view stops the Measure tool from crashing. Thanks xtemp09 for the hint, I can now continue working on my model.

@maxwxyz
Copy link
Collaborator

maxwxyz commented May 19, 2024

@hlorus can you reproduce this?

@maxwxyz maxwxyz added Bug This issue or PR is related to a bug and removed Missing: confirmation Missing confirmation from other testers labels May 19, 2024
@hlorus
Copy link
Contributor

hlorus commented May 20, 2024

@hlorus can you reproduce this?

Yes i can reproduce it when enabling DAG View, i'll have to investigate.

@krushia
Copy link

krushia commented May 23, 2024

Introduced sometime between these builds:

(Last weekly without crash)
Version: 0.22.0dev.37249 (Git) AppImage
Hash: 3acbc56

(First weekly with crash)
Version: 0.22.0dev.37302 (Git) AppImage
Hash: 0e24e12

@hlorus
Copy link
Contributor

hlorus commented May 25, 2024

Thanks @krushia! It was introduced in 2b9e9d6, more specifically line 310 seems to trigger the crash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug This issue or PR is related to a bug Core Issue or PR touches core sections (App, Gui, Base) of FreeCAD
Projects
None yet
Development

No branches or pull requests

5 participants