rviz: Segfault in Nvidia when using IMs
We’ve found that when the always_visible() flag is set on markers, and you have attached a mesh to the marker, that Ubuntu nvidia drivers will end up crashing rviz when you are using the controller to change the pose of the marker… Backtrace of gdb provided below. This happens on 304–367 Nvidia drivers in Kinetic, but if nouveau is used we don’t see it.
Thread 1 "rviz" received signal SIGSEGV, Segmentation fault.
0x00000000400a1c6e in ?? ()
(gdb) bt
#0 0x00000000400a1c6e in ?? ()
#1 0x00007fffab46d079 in ?? () from /usr/lib/nvidia-367/libnvidia-glcore.so.367.57
#2 0x00007fffab473b44 in ?? () from /usr/lib/nvidia-367/libnvidia-glcore.so.367.57
#3 0x00007fffab05a5a9 in ?? () from /usr/lib/nvidia-367/libnvidia-glcore.so.367.57
#4 0x00007fffb81a89c5 in Ogre::GLRenderSystem::_render(Ogre::RenderOperation const&) ()
from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so.1.9.0
#5 0x00007ffff3b937f7 in Ogre::SceneManager::renderSingleObject(Ogre::Renderable*, Ogre::Pass const*, bool, bool, Ogre::HashedVector<Ogre::Light*> const*) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#6 0x00007ffff3bbdfb9 in Ogre::QueuedRenderableCollection::acceptVisitorGrouped(Ogre::QueuedRenderableVisitor*) const () from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#7 0x00007ffff3bbe095 in Ogre::QueuedRenderableCollection::acceptVisitor(Ogre::QueuedRenderableVisitor*, Ogre::QueuedRenderableCollection::OrganisationMode) const ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#8 0x00007ffff3b7c8df in Ogre::SceneManager::renderBasicQueueGroupObjects(Ogre::RenderQueueGroup*, Ogre::QueuedRenderableCollection::OrganisationMode) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#9 0x00007ffff3b7c757 in Ogre::SceneManager::renderVisibleObjectsDefaultSequence() ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#10 0x00007ffff3b92474 in Ogre::SceneManager::_renderScene(Ogre::Camera*, Ogre::Viewport*, bool) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#11 0x00007ffff3bcef51 in Ogre::Camera::_renderScene(Ogre::Viewport*, bool) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#12 0x00007ffff3b7377a in Ogre::RenderTarget::_updateViewport(Ogre::Viewport*, bool) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#13 0x00007ffff3b735cb in Ogre::RenderTarget::_updateAutoUpdatedViewports(bool) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#14 0x00007ffff3b7311e in Ogre::RenderTarget::updateImpl() ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#15 0x00007ffff3b73ac4 in Ogre::RenderTarget::update(bool) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#16 0x00007ffff3c23e5f in Ogre::RenderSystem::_updateAllRenderTargets(bool) ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#17 0x00007ffff3d3a4ba in Ogre::Root::_updateAllRenderTargets() ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#18 0x00007ffff3d3a5a0 in Ogre::Root::renderOneFrame() ()
from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#19 0x00007ffff7b4d3ce in rviz::VisualizationManager::onUpdate() ()
from /opt/ros/kinetic/lib/librviz.so
#20 0x00007ffff2193d2a in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff21a05c8 in QTimer::timerEvent(QTimerEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff2194bb3 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff746a05c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff746f516 in QApplication::notify(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff216538b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff21ba5ed in QTimerInfoList::activateTimers() ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff21baaf1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff16bc197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff16bc3f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff16bc49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff21bb7cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
---Type <return> to continue, or q <return> to quit---q
(Quit
(gdb) q
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 31 (9 by maintainers)
I had this problem but I believe I was able to overcome it by installing OGRE v1.9.1 from source. Followed by recompiling Rviz from source.
This might also help for #1192 and #1185.
I can confirm that this bug disappears with Ogre 1.9.1. Hence, closing this issue here. I filed a bug report on launchpad, asking for an upgrade of Ogre in Ubuntu Bionic and Xenial. There is no other option to fix this. People affected by this bug should build Ogre 1.9.1 and rviz from source.
Got the same problem on nvidia driven machines. If this is working for real, could someone in a mighty position update the official ros-kinetic-rviz package in the ROS’ ubuntu package sources for xenial (kinetic), bionic (melodic) and the other versions? Would be helpful for all of us!