Gui crashes in context menus of memory viewer
@chaosbambi reported an issue with the context menus in memory viewer (remote actions):
When clicking on an arbitrary entry in the memory structure, i.e. trying to open the context menu:
[16238][13:57:19.052][ExampleMemoryClient][ExampleMemoryClient]: example_entity got updated: 'Example/ExampleModality/FancyMethodModality/example_entity'
Updated snapshots:
- 'Example/ExampleModality/FancyMethodModality/example_entity/1652097439051440'
free(): invalid pointer
[15942][13:57:19.134][ArmarXGui-1652097384870][Application::HandlerFault(int)]: Error: Abort
Backtrace:
Backtrace:
1 0x7ff1911db331 armarx::Application::HandlerFault(int) + 961
2 0x7ff18f806f10 /lib/x86_64-linux-gnu/libc.so.6(+0x3ef10) [0x7ff18f806f10]
3 0x7ff18f806e87 gsignal + 199
4 0x7ff18f8087f1 abort + 321
5 0x7ff18f851837 /lib/x86_64-linux-gnu/libc.so.6(+0x89837) [0x7ff18f851837]
6 0x7ff18f8588ba /lib/x86_64-linux-gnu/libc.so.6(+0x908ba) [0x7ff18f8588ba]
7 0x7ff18f85fdec cfree + 1244
8 0x7ff1901f4c04 Eigen::IOFormat::~IOFormat() + 52
9 0x7ff1180d3f7c /common/homes/students/mueller3/code/armarx/RobotAPI/build/lib/libarmem_gui.so.0(+0x6af7c) [0x7ff1180d3f7c]
10 0x7ff11814af3e armarx::aron::TypedDataDisplayVisitor::getValue[abi:cxx11](std::shared_ptr<armarx::aron::type::Variant> const&, std::shared_ptr<armarx::aron::data::Variant> const&) + 990
11 0x7ff1181563e0 armarx::armem::gui::instance::TypedDataTreeBuilder::update(QTreeWidgetItem*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<armarx::aron::type::Variant> const&, std::shared_ptr<armarx::aron::data::Variant> const&) + 96
12 0x7ff11815783d /common/homes/students/mueller3/code/armarx/RobotAPI/build/lib/libarmem_gui.so.0(+0xee83d) [0x7ff11815783d]
13 0x7ff1181501af void armarx::TreeWidgetBuilder<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::updateTreeWithIterator<QTreeWidgetItem, armarx::TreeWidgetBuilder<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::updateTreeWithContainer<QTreeWidgetItem, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(QTreeWidgetItem*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)::{lambda(auto:1&&)#1}>(QTreeWidgetItem*, armarx::TreeWidgetBuilder<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::updateTreeWithContainer<QTreeWidgetItem, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 14 0x7ff1181556b2 armarx::armem::gui::instance::TypedDataTreeBuilder::updateTree(QTreeWidgetItem*, armarx::aron::type::Object const&, armarx::aron::data::Dict const&) + 562
15 0x7ff118132c74 armarx::armem::gui::instance::InstanceView::updateData(std::shared_ptr<armarx::aron::data::Dict> const&, std::shared_ptr<armarx::aron::type::Object>) + 356
16 0x7ff118136878 armarx::armem::gui::instance::InstanceView::update() + 184
17 0x7ff118137255 armarx::armem::gui::instance::InstanceView::update(armarx::armem::MemoryID const&, armarx::armem::wm::Memory const&) + 1429
18 0x7ff11810adc1 armarx::armem::gui::MemoryViewer::updateInstanceTree(armarx::armem::MemoryID const&) + 177
19 0x7ff1917c963f QMetaObject::activate(QObject*, int, int, void**) + 2431
20 0x7ff1180fb8c9 armarx::armem::gui::memory::TreeWidget::selectedItemChanged(armarx::armem::MemoryID const&) + 57
21 0x7ff118169cbf armarx::armem::gui::memory::TreeWidget::handleSelection() + 303
22 0x7ff1917c963f QMetaObject::activate(QObject*, int, int, void**) + 2431
23 0x7ff18cd7ee6e QTreeWidget::currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*) + 78
24 0x7ff1917c9525 QMetaObject::activate(QObject*, int, int, void**) + 2149
25 0x7ff19174665a QItemSelectionModel::currentChanged(QModelIndex const&, QModelIndex const&) + 58
26 0x7ff19174694e QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) + 286
27 0x7ff18cd0da6c QAbstractItemView::mousePressEvent(QMouseEvent*) + 860
28 0x7ff18cd7baab QTreeView::mousePressEvent(QMouseEvent*) + 443
29 0x7ff18cafe98f QWidget::event(QEvent*) + 2895
30 0x7ff18cb9f44e QFrame::event(QEvent*) + 30
31 0x7ff18cd12b5b QAbstractItemView::viewportEvent(QEvent*) + 427
32 0x7ff18cd7b50c QTreeView::viewportEvent(QEvent*) + 60
33 0x7ff19179a58c QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 124
34 0x7ff18cabf815 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 117
35 0x7ff18cac765f QApplication::notify(QObject*, QEvent*) + 2047
36 0x7ff191ca45be armarx::ArmarXQApplication::notify(QObject*, QEvent*) + 46
37 0x7ff19179a8a8 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 280
38 0x7ff18cac6632 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) + 466
39 0x7ff18cb1915b /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1ae15b) [0x7ff18cb1915b]
40 0x7ff18cb1b7ca /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1b07ca) [0x7ff18cb1b7ca]
41 0x7ff18cabf83c QApplicationPrivate::notify_helper(QObject*, QEvent*) + 156
42 0x7ff18cac7104 QApplication::notify(QObject*, QEvent*) + 676
43 0x7ff191ca45be armarx::ArmarXQApplication::notify(QObject*, QEvent*) + 46
44 0x7ff19179a8a8 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 280
45 0x7ff18c3035eb QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 1803
46 0x7ff18c3050b5 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 309
47 0x7ff18c2dc33b QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 171
48 0x7ff1834ea260 /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5(+0x9f260) [0x7ff1834ea260]
49 0x7ff18ad09537 g_main_context_dispatch + 743
50 0x7ff18ad09770 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4c770) [0x7ff18ad09770]
51 0x7ff18ad097fc g_main_context_iteration + 44
52 0x7ff1917f385f QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 95
53 0x7ff1917988da QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 314
54 0x7ff1917a1984 QCoreApplication::exec() + 148
55 0x7ff191ca5c67 armarx::ArmarXGuiApp::exec(IceUtil::Handle<armarx::ArmarXManager> const&) + 2775
56 0x7ff1911ddd49 armarx::Application::run(int, char**) + 4281
57 0x7ff191ca44df armarx::ArmarXGuiApp::run(int, char**) + 527
58 0x7ff19207d828 Ice::Application::doMain(int, char**, Ice::InitializationData const&, int) + 904
59 0x7ff1911de87d armarx::Application::doMain(int, char**, Ice::InitializationData const&, int) + 1485
60 0x7ff191fd4691 Ice::Application::main(int, char const* const*, Ice::InitializationData const&, int) + 865
61 0x55815afa3cc8 /common/homes/students/mueller3/code/armarx/ArmarXGui/build/bin/ArmarXGuiRun(+0x3cc8) [0x55815afa3cc8]
62 0x7ff18f7e9c87 __libc_start_main + 231
63 0x55815afa46da /common/homes/students/mueller3/code/armarx/ArmarXGui/build/bin/ArmarXGuiRun(+0x46da) [0x55815afa46da]
Observed with ExampleMemory and GraspMemory (but not always on 1st time)