AnsweredAssumed Answered

Destruction of SceneGraphicsView

Question asked by norbert.thoden on Nov 6, 2017

Hi!

 

In our appliction it should be possible to switch from 2D to 3D and vice versa.

So we destruct the current view and create the other one directly afterwards. (The view/widget is added to the layout of the containing widget. So it look smooth)

 

During the last weeks we encounter several segmentation faults - most of them point to problem in destruction of the Esri::ArcGISRuntime::SceneGraphicsView

 

one stack looks like:

(gdb) bt
#0 0x00007f302ce6aeea in ?? () from /usr/lib64/libnvidia-glcore.so.384.69
#1 0x00007f302cec9687 in ?? () from /usr/lib64/libnvidia-glcore.so.384.69
#2 0x00007f302cec97ee in ?? () from /usr/lib64/libnvidia-glcore.so.384.69
#3 0x00007f302cec24e6 in ?? () from /usr/lib64/libnvidia-glcore.so.384.69
#4 0x00007f302cb0297b in ?? () from /usr/lib64/libnvidia-glcore.so.384.69
#5 0x00007f302cb037f6 in ?? () from /usr/lib64/libnvidia-glcore.so.384.69
#6 0x00007f300685b87e in ?? () from /usr/lib64/libruntimecore.so
#7 0x00007f300686957b in ?? () from /usr/lib64/libruntimecore.so
#8 0x00007f3005f13adf in ?? () from /usr/lib64/libruntimecore.so
#9 0x00007f300591e404 in ?? () from /usr/lib64/libruntimecore.so
#10 0x00007f300528e212 in RT_GeoView_pause () from /usr/lib64/libruntimecore.so
#11 0x00007f3008f93e36 in ESRI::RuntimeCore::QRTGeoView::pause(ESRI::RuntimeCore::QRTDevice*, ESRI::RuntimeCore::QRTGraphicsHardwareResources) () from /usr/lib64/libEsriCommonQt.so
#12 0x00007f3009283065 in QRTImpl::GeoViewImpl::pause(std::shared_ptr<QRTImpl::DeviceImpl> const&, QRTImpl::GraphicsHardwareResources) () from /usr/lib64/libEsriCommonQt.so
#13 0x00007f2fea7b48ca in Esri::ArcGISRuntime::GeoView::pauseAndRecycleResources() () from /shd/CTC/TOOLS/TDS/TDS-build/lib/libsituationMap.so
#14 0x00007f2fea851bd7 in Esri::ArcGISRuntime::SceneGraphicsScene::~SceneGraphicsScene() () from /shd/CTC/TOOLS/TDS/TDS-build/lib/libsituationMap.so
#15 0x00007f2fea851be9 in Esri::ArcGISRuntime::SceneGraphicsScene::~SceneGraphicsScene() () from /shd/CTC/TOOLS/TDS/TDS-build/lib/libsituationMap.so
#16 0x00007f2fea7d6b49 in Esri::ArcGISRuntime::SceneGraphicsView::~SceneGraphicsView() () from /shd/CTC/TOOLS/TDS/TDS-build/lib/libsituationMap.so
#17 0x00007f2fea7d6b99 in Esri::ArcGISRuntime::SceneGraphicsView::~SceneGraphicsView() () from /shd/CTC/TOOLS/TDS/TDS-build/lib/libsituationMap.so
#18 0x00007f2fea6531e0 in SituationMap::MapImpl::fini3D (this=0x1ad1dbc0) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Viewer/SituationMap/MapImpl/map_impl.cpp:739
#19 0x00007f2fea6571cd in SituationMap::MapImpl::~MapImpl (this=0x1ad1dbc0) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Viewer/SituationMap/MapImpl/map_impl.cpp:1107
#20 0x00007f2fea6573a9 in SituationMap::MapImpl::~MapImpl (this=0x1ad1dbc0) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Viewer/SituationMap/MapImpl/map_impl.cpp:1084
#21 0x00007f2fdd71e36d in SituationMapInit::~SituationMapInit (this=0x1ad1da90) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Plugins/SituationMapPlugin/Gui/SituationMap/situation_map_init.cpp:112
#22 0x00007f2fdd71e589 in SituationMapInit::~SituationMapInit (this=0x1ad1da90) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Plugins/SituationMapPlugin/Gui/SituationMap/situation_map_init.cpp:96
#23 0x00007f2fdd6fe37e in SituationMap::InterfaceImpl::createWidget (this=0x8e95ad8) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Plugins/SituationMapPlugin/Gui/SituationMap/sitmap_gui_plugin.cpp:484
#24 0x00007f2fdd6fde8e in SituationMap::InterfaceImpl::reCreateSituationMapInitAndAddToLayout (this=0x8e95ad8) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Plugins/SituationMapPlugin/Gui/SituationMap/sitmap_gui_plugin.cpp:652
#25 0x00007f2fdd6fd7e3 in SituationMap::InterfaceImpl::onChangeModeRequested (this=0x8e95ad8) at /shd/CTC/TOOLS/TDS/TDS-source/Lts/Plugins/SituationMapPlugin/Gui/SituationMap/sitmap_gui_plugin.cpp:412

 

or:

 

(gdb) bt
#0 0x00007f172d633790 in ?? () from /usr/lib64/libruntimecore.so
#1 0x00007f172d633889 in ?? () from /usr/lib64/libruntimecore.so
#2 0x00007f172e1861b7 in ?? () from /usr/lib64/libruntimecore.so
#3 0x00007f172f824e39 in std::__1::__shared_weak_count::__release_shared() () from /usr/lib64/libruntimecore.so
#4 0x00007f172e18e3c4 in ?? () from /usr/lib64/libruntimecore.so
#5 0x00007f172e186230 in ?? () from /usr/lib64/libruntimecore.so
#6 0x00007f172f824e39 in std::__1::__shared_weak_count::__release_shared() () from /usr/lib64/libruntimecore.so
#7 0x00007f172e17f6c6 in ?? () from /usr/lib64/libruntimecore.so
#8 0x00007f172e17f739 in ?? () from /usr/lib64/libruntimecore.so
#9 0x00007f172e0d9975 in ?? () from /usr/lib64/libruntimecore.so
#10 0x00007f172f824e39 in std::__1::__shared_weak_count::__release_shared() () from /usr/lib64/libruntimecore.so
#11 0x00007f172dae6d40 in ?? () from /usr/lib64/libruntimecore.so
#12 0x00007f172f824e39 in std::__1::__shared_weak_count::__release_shared() () from /usr/lib64/libruntimecore.so
#13 0x00007f172d702eb3 in ?? () from /usr/lib64/libruntimecore.so
#14 0x00007f172dbb5182 in ?? () from /usr/lib64/libruntimecore.so
#15 0x00007f172dbb4ca7 in ?? () from /usr/lib64/libruntimecore.so
#16 0x00007f172f7d18d0 in ?? () from /usr/lib64/libruntimecore.so
#17 0x00007f172ed5119c in ?? () from /usr/lib64/libruntimecore.so
#18 0x00007f172ed5119c in ?? () from /usr/lib64/libruntimecore.so
#19 0x00007f172ed6b3f4 in ?? () from /usr/lib64/libruntimecore.so
#20 0x00007f172ed6b31f in ?? () from /usr/lib64/libruntimecore.so
#21 0x00007f172ed6a699 in ?? () from /usr/lib64/libruntimecore.so
#22 0x00007f172ed6c500 in ?? () from /usr/lib64/libruntimecore.so
#23 0x00007f175e299744 in start_thread () from /lib64/libpthread.so.0
#24 0x00007f175aa94aad in clone () from /lib64/libc.so.6

 

Can someone give me any hints?

 

Thanks in advance!

Outcomes