ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Segfault using xvfb with Gazebo but not with xnest [closed]

asked 2012-06-14 14:53:27 -0500

SL Remy gravatar image

Hello everyone, I'm trying to get a little further with running Gazebo remotely.

On the remote machine, one display (:1) is provided by Xvfb, while the other (:2) is provided by Xnest.

glxinfo says both displays provide direct rendering. Xnest works, but Xvfb segfaults

Any suggestions as to what's happening?

The remote machine does not have a supported graphics card (yet Xnest works).

The local machine is a mac (running Snow Lepoard) with an nvidia card.

I hope Xvfb is going to be an option because it permits glxgears to operate at 487 FPS vs 4 FPS with Xnest.

I'm starting with gazebo on electric because this error message is more meaningful than what I see on fuerte (gazebo 1.0.1).

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe40f5ad5 in Ogre::GLXWindow::create (this=0x7ffff7eb8288, name=..., width=542, height=305, 
    fullScreen=<value optimized out>, miscParams=<value optimized out>)
    at /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/RenderSystems/GL/src/GLX/OgreGLXWindow.cpp:326
326 /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/RenderSystems/GL/src/GLX/OgreGLXWindow.cpp: No such file or directory.
    in /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/RenderSystems/GL/src/GLX/OgreGLXWindow.cpp
(gdb) bt
#0  0x00007fffe40f5ad5 in Ogre::GLXWindow::create (this=0x7ffff7eb8288, name=..., width=542, height=305, 
    fullScreen=<value optimized out>, miscParams=<value optimized out>)
    at /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/RenderSystems/GL/src/GLX/OgreGLXWindow.cpp:326
#1  0x00007fffe40e84b2 in Ogre::GLXGLSupport::newWindow (this=0x737f60, name=..., width=542, height=305, 
    fullScreen=false, miscParams=0x7fffffffd3f0)
    at /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/RenderSystems/GL/src/GLX/OgreGLXGLSupport.cpp:379
#2  0x00007fffe40a6a6a in Ogre::GLRenderSystem::_createRenderWindow (this=0x7ffff7eb7758, name=..., 
    width=542, height=305, fullScreen=false, miscParams=0x7fffffffd3f0)
    at /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/RenderSystems/GL/src/OgreGLRenderSystem.cpp:1009
#3  0x00007ffff6e1146f in Ogre::Root::createRenderWindow (this=0x7ffff7ea78d8, 
    name=<value optimized out>, width=<value optimized out>, height=<value optimized out>, 
    fullScreen=<value optimized out>, miscParams=<value optimized out>)
    at /tmp/buildd/ros-electric-visualization-common-1.6.3/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-3/OgreMain/src/OgreRoot.cpp:1199
#4  0x00007ffff5641be7 in gazebo::OgreCreator::CreateWindow(_XDisplay*, int, int, unsigned int, unsigned int) () from /opt/ros/electric/stacks/simulator_gazebo/gazebo/gazebo/lib/libgazebo_rendering.so
#5  0x00007ffff5642b8d in gazebo::OgreCreator::CreateWindow(Fl_Window*, unsigned int, unsigned int) ()
   from /opt/ros/electric/stacks/simulator_gazebo/gazebo/gazebo/lib/libgazebo_rendering.so
#6  0x00007ffff567b857 in gazebo::UserCamera::UserCamera(gazebo::GLWindow*) ()
   from /opt/ros/electric/stacks/simulator_gazebo/gazebo/gazebo/lib/libgazebo_rendering.so
#7  0x00007ffff58cf43a in gazebo::GLWindow::CreateCameras(double) ()
   from /opt/ros/electric/stacks/simulator_gazebo/gazebo/gazebo/lib/libgazebo_gui.so.0.10.0
#8  0x00007ffff58ddeac in gazebo::GLFrameManager::CreateCameras() ()
   from /opt/ros/electric/stacks/simulator_gazebo/gazebo/gazebo/lib/libgazebo_gui.so ...
(more)
edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by SL Remy
close date 2013-01-30 11:23:05

1 Answer

Sort by ยป oldest newest most voted
0

answered 2012-06-18 06:07:15 -0500

SL Remy gravatar image

Ok, so far the only answer that I can fathom and is supported by this blog is that xservers like vnc do not permit "OpenGL calls to the screen" and that virtualGL is the path forward.

And this other post means that at least 2 people are using this

I hope there's not a huge gotcha around the corner with vglrun...

edit flag offensive delete link more

Comments

With KVM it's possible to pass a real card through and assign it to a particular VM (http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM)

SL Remy gravatar image SL Remy  ( 2012-09-02 01:13:31 -0500 )edit

Question Tools

Stats

Asked: 2012-06-14 14:53:27 -0500

Seen: 471 times

Last updated: Jun 18 '12