I get the following backtrace when using a Vizkit3d widget in a ruby script on shutdown.
Since the shutdown is aborted all deployments will stay alive as well.
Stack trace (most recent call last):
#31 Object "/home/sirius/.autoproj/gems/ruby/2.3.0/gems/qtbindings-4.8.6.4/ext/build/ruby/qtruby/src/libqtruby4shared.so.2.0.0", at 0x7fcdf1a977d3, in QtRuby::MethodCall::callMethod()
#30 Object "/home/sirius/.autoproj/gems/ruby/2.3.0/gems/qtbindings-4.8.6.4/ext/build/smoke/qtgui/libsmokeqtgui.so.3.0.0", at 0x7fcdf01c6845, in __smokeqtgui::xcall_QApplication(short, void*, Smoke::StackItem*)
#29 Object "/home/sirius/.autoproj/gems/ruby/2.3.0/gems/qtbindings-4.8.6.4/ext/build/smoke/qtgui/libsmokeqtgui.so.3.0.0", at 0x7fcdf01cf3a0, in __smokeqtgui::x_QApplication::x_88(Smoke::StackItem*)
#28 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf35784b8, in QCoreApplication::exec()
#27 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf35724f4, in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
#26 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf357218e, in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
#25 Object "/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7", at 0x7fcdf21a9615, in
#24 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf35a42ad, in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
#23 Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2", at 0x7fcdf312249b, in g_main_context_iteration
#22 Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2", at 0x7fcdf31223ef, in
#21 Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2", at 0x7fcdf3122196, in g_main_context_dispatch
#20 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf35a38f0, in
#19 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf35a677f, in
#18 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf357390c, in QCoreApplication::notifyInternal(QObject*, QEvent*)
#17 Object "/home/sirius/.autoproj/gems/ruby/2.3.0/gems/qtbindings-4.8.6.4/ext/build/smoke/qtgui/libsmokeqtgui.so.3.0.0", at 0x7fcdf01d0402, in __smokeqtgui::x_QApplication::notify(QObject*, QEvent*)
#16 Object "/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7", at 0x7fcdf2102f15, in QApplication::notify(QObject*, QEvent*)
#15 Object "/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7", at 0x7fcdf20fbfdb, in QApplicationPrivate::notify_helper(QObject*, QEvent*)
#14 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf358dc82, in QObject::event(QEvent*)
#13 Object "/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7", at 0x7fcdf358800f, in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
#12 Source "/home/sirius/entern/gui/vizkit3d/build/src/moc_Vizkit3DWidget.cxx", line 393, in qt_static_metacall [0x7fcd61617d6a]
390: case 3: _t->frameMoved((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QVector3D(*)>(_a[2])),(*reinterpret_cast< const QQuaternion(*)>(_a[3]))); break;
391: case 4: _t->frameMoving((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QVector3D(*)>(_a[2])),(*reinterpret_cast< const QQuaternion(*)>(_a[3]))); break;
392: case 5: _t->frameSelected((*reinterpret_cast< const QString(*)>(_a[1]))); break;
> 393: case 6: _t->update(); break;
394: case 7: _t->addPlugin((*reinterpret_cast< QObject*(*)>(_a[1])),(*reinterpret_cast< QObject*(*)>(_a[2]))); break;
395: case 8: _t->addPlugin((*reinterpret_cast< QObject*(*)>(_a[1]))); break;
396: case 9: _t->removePlugin((*reinterpret_cast< QObject*(*)>(_a[1]))); break;
#11 Source "/home/sirius/entern/gui/osgviz/osgviz/src/OsgViz.cpp", line 97, in update [0x7fcd88028b4d]
94: }
95:
96: mutex->lock();
> 97: windowManager->frame();
98: mutex->unlock();
#10 Source "/home/sirius/entern/gui/osgviz/osgviz/src/windows/WindowManager.cpp", line 62, in frame [0x7fcd8802de05]
59: //windows become invalid but are not removed from the window list
60: //thus we have to check if they are valid
61: if(witr->valid())
> 62: witr->get()->frame();
63: }
64: windowsMutex.unlock();
65: }
#9 Object "/usr/lib/x86_64-linux-gnu/libosgViewer.so.3.2.1", at 0x7fcd605f2456, in osgViewer::ViewerBase::renderingTraversals()
#8 Object "/usr/lib/x86_64-linux-gnu/libosg.so.3.2.1", at 0x7fcd6115f42b, in osg::GraphicsContext::swapBuffers()
#7 Object "/usr/lib/x86_64-linux-gnu/libosgQt.so.3.2.1", at 0x7fcd6013bde2, in osgQt::GraphicsWindowQt::swapBuffersImplementation()
#6 Object "/usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8.7", at 0x7fcded188386, in QGLContext::swapBuffers() const
#5 Object "/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0", at 0x7fcdebca21d6, in
#4 Object "/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0", at 0x7fcdebccc0a3, in
#3 Object "/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0", at 0x7fcdebf88720, in xcb_wait_for_reply
#2 Object "/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0", at 0x7fcdebf88616, in
#1 Object "/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0", at 0x7fcdebf86c61, in
#0 Source "../sysdeps/unix/syscall-template.S", line 84, in poll [0x7fcdfbe9b70d]