Home | Tutorials | Wiki | Issues
Ask Your Question

rukkal's profile - activity

2016-09-15 07:38:45 -0600 received badge  Famous Question (source)
2016-09-15 07:38:45 -0600 received badge  Notable Question (source)
2016-08-10 03:36:06 -0600 received badge  Popular Question (source)
2016-08-08 12:32:20 -0600 commented question X forwarding + indirect 3D rendering = segmentation fault

I modified the original post. Please don't hesitate to ask for more details, if needed.

2016-08-08 12:29:11 -0600 received badge  Editor (source)
2016-08-08 03:39:38 -0600 asked a question X forwarding + indirect 3D rendering = segmentation fault

Hi all

I am debugging gazebo with remote X forwarding. Gazebo works fine when I run it locally on my machine. Gazebo also works fine when I ssh with X forwarding to my own machine. However, when I use the same machine as a remote one and I ssh with X forwarding to it (from another machine) I get a segmentation fault. This is a detailed list of what I do and what happens:

  1. ssh -Y <remote_machine_were_gazebo_is_installed>
  2. launch gazebo.
  3. gazebo starts and the GUI appears on the local machine.
  4. the 3D world is correctly rendered on the local machine and I can also move/rotate it.
  5. click on the 3D world on the local machine.
  6. gazebo crashes with a segmentation fault.

I Debugged the program and I found out that when I click the image a piece of code similar to the following snippet is executed:

Ogre::HardwareIndexBuffer& buf = ... ;
if (buf.getType() == Ogre::HardwareIndexBuffer::IT_32BIT)
{
   uint32_t*  pLong = static_cast<uint32_t*>(buf.lock(Ogre::HardwareBuffer::HBL_READ_ONLY));
   idx0 = pLong[0];
   idx1 = pLong[1];
   ...
}

The exact code is at gazebo/rendering/Scene.cc:1590 (gazebo 7.3.1).

The indices retrieved from the Ogre::HardwareBuffer are then used to dereference an array of vertices (array of Ogre::Vector3 declared at gazebo/rendering/Scene.cc:1529). Some of the indices are fishy because they are definitely out of the bounds of the array of vertices and they cause the segmentation fault.

Is gazebo reading garbage from the remote GPU here? If so, is there any way that gazebo could possibly run remotely with X forwarding and indirect 3D rendering or am I trying to do something impossible? I am asking this because to me it looks like the problem is the fact that OpenGL commands are sent to the local client machine, whereas gazebo reads garbage from the remote GPU because it has been hardcoded to do so.

Thank you in advance for any input on this!

2016-07-25 14:19:21 -0600 answered a question Ogre Exception on X11 Forwarding

have you found any solution? I have the same problem.

Thanks in advance