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

Properly terminate render engine #17

Open
osrf-migration opened this issue Dec 26, 2017 · 0 comments
Open

Properly terminate render engine #17

osrf-migration opened this issue Dec 26, 2017 · 0 comments
Labels
bug Something isn't working

Comments

@osrf-migration
Copy link

Original report (archived issue) by Louise Poubel (Bitbucket: chapulina, GitHub: chapulina).


@iche033 mentioned on pull request #62 that we should call Fini on the ignition-rendering engine before terminating the program so it shuts down properly.

I tried calling fini when the engine has no more scenes like this:

diff -r 17c6c8bc83ab46edfadd765870d150e87d868e4e src/plugins/Scene3D.cc
--- a/src/plugins/Scene3D.cc	Tue Dec 26 08:53:22 2017 -0800
+++ b/src/plugins/Scene3D.cc	Tue Dec 26 09:27:22 2017 -0800
@@ -90,6 +90,8 @@
     engine->DestroyScene(scene);
 
     // TODO: If that was the last scene, terminate engine?
+    if (engine->SceneCount() == 0)
+      engine->Fini();
   }
 }

But if after doing this, we try to open a new scene plugin (i.e. re-init the engine), the program crashes with this backtrace:

/usr/local/lib/libignition-rendering-ogre.so.0(_ZN8ignition9rendering9OgreScene13CreateContextEv+0x75) [0x7f49e1e5c731] /home/louise/code/ign-rendering/src/ogre/OgreScene.cc:339
/usr/local/lib/libignition-rendering-ogre.so.0(_ZN8ignition9rendering9OgreScene8InitImplEv+0x3a) [0x7f49e1e57faa] /home/louise/code/ign-rendering/src/ogre/OgreScene.cc:124
/usr/local/lib/libignition-rendering-base.so.0(_ZN8ignition9rendering9BaseScene4InitEv+0x1d1) [0x7f49e18de6a7] /home/louise/code/ign-rendering/src/base/BaseScene.cc:70
/usr/local/lib/libignition-rendering-base.so.0(_ZN8ignition9rendering16BaseRenderEngine12PrepareSceneESt10shared_ptrINS0_5SceneEE+0xc8) [0x7f49e18daea6] /home/louise/code/ign-rendering/src/base/BaseRenderEngine.cc:214
/usr/local/lib/libignition-rendering-base.so.0(_ZN8ignition9rendering16BaseRenderEngine11CreateSceneEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x785) [0x7f49e18daae5] /home/louise/code/ign-rendering/src/base/BaseRenderEngine.cc:193
/usr/local/lib/libignition-rendering-base.so.0(_ZN8ignition9rendering16BaseRenderEngine11CreateSceneERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x86) [0x7f49e18da2e0] /home/louise/code/ign-rendering/src/base/BaseRenderEngine.cc:167
/usr/local/lib/ign-gui-0/plugins/libScene3D.so(_ZN8ignition3gui7plugins7Scene3D10LoadConfigEPKN8tinyxml210XMLElementE+0x1199) [0x7f49e24ed8e7] /home/louise/code/ign-gui/src/plugins/Scene3D.cc:170
/usr/local/lib/libignition-gui0.so(_ZN8ignition3gui6Plugin4LoadEPKN8tinyxml210XMLElementE+0x93d) [0x7f4a1557b765] /home/louise/code/ign-gui/src/Plugin.cc:100
/usr/local/lib/libignition-gui0.so(_ZN8ignition3gui10loadPluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN8tinyxml210XMLElementE+0x15c8) [0x7f4a154cebe1] /home/louise/code/ign-gui/src/Iface.cc:553
/usr/local/lib/libignition-gui0.so(_ZN8ignition3gui10MainWindow11OnAddPluginE7QString+0x1d7) [0x7f4a154f041d] /home/louise/code/ign-gui/src/MainWindow.cc:268
/usr/local/lib/libignition-gui0.so(_ZN8ignition3gui10MainWindow18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv+0x19d) [0x7f4a1559fd97] /home/louise/code/ign-gui/build/include/ignition/gui/moc_MainWindow.cpp:88
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0x7ea) [0x7f4a1228fd2a]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN13QSignalMapper6mappedERK7QString+0x35) [0x7f4a1229a1a5]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN13QSignalMapper3mapEP7QObject+0x202) [0x7f4a1229b6f2]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0x7ea) [0x7f4a1228fd2a]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN7QAction9triggeredEb+0x42) [0x7f4a1309f412]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN7QAction8activateENS_11ActionEventE+0xf8) [0x7f4a130a1898]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 [0x7f4a130a1e1f]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN7QObject5eventEP6QEvent+0xf1) [0x7f4a12290c01]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN7QAction5eventEP6QEvent+0x22) [0x7f4a130a2122]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x8c) [0x7f4a130a905c]
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x256) [0x7f4a130ae516]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0xdb) [0x7f4a1226138b]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x2c6) [0x7f4a12263786]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5 [0x7f4a122b73c3]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x2a7) [0x7f4a0f33f197]
/lib/x86_64-linux-gnu/libglib-2.0.so.0 [0x7f4a0f33f3f0]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7f4a0f33f49c]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x5f) [0x7f4a122b77cf]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x10a) [0x7f4a1225eb4a]
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x9c) [0x7f4a12266bec]
/usr/local/lib/libignition-gui0.so(_ZN8ignition3gui13runMainWindowEv+0x205) [0x7f4a154d09bb] /home/louise/code/ign-gui/src/Iface.cc:659
/usr/local/lib/libignition-gui0.so(_ZN8ignition3gui9runConfigERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x3ee) [0x7f4a154c9be1] /home/louise/code/ign-gui/src/Iface.cc:226
/usr/local/lib/libignition-gui0.so(cmdConfig+0x81) [0x7f4a154eabe9] /home/louise/code/ign-gui/src/ign.cc:53
/usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call_unix64+0x4c) [0x7f4a158b2e40]
/usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call+0x2eb) [0x7f4a158b28ab]
/usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so [0x7f4a15ab9758]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a180427ef]
/usr/lib/x86_64-linux-gnu/ruby/2.3.0/fiddle.so [0x7f4a15ab9585]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a1802450b]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a180324a3]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a180334d3]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a1802819c]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a1802d142]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3 [0x7f4a17f13cfd]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_exec_node+0x1d) [0x7f4a17f156fd]
/usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3(ruby_run_node+0x1e) [0x7f4a17f1783e]
/usr/bin/ruby [0x40087b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f4a17b02830] ../csu/libc-start.c:291
/usr/bin/ruby(_start+0x29) [0x4008a9]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants