gazebosim / gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
http://classic.gazebosim.org/
Other
1.2k stars 481 forks source link

Segfault of tests in Intel video cards #832

Open osrf-migration opened 11 years ago

osrf-migration commented 11 years ago

Original report (archived issue) by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


running UNIT_Sensor_TEST with ogre debug information.

0x00007fffcfc8605a in Ogre::GLXGLSupport::refreshConfig (this=this@entry=0x7fffd84e1a00)
    at /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/GLX/OgreGLXGLSupport.cpp:289
289 /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/GLX/OgreGLXGLSupport.cpp: No such file or directory.
(gdb) bt
#0  0x00007fffcfc8605a in Ogre::GLXGLSupport::refreshConfig (this=this@entry=0x7fffd84e1a00)
    at /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/GLX/OgreGLXGLSupport.cpp:289
#1  0x00007fffcfc88208 in Ogre::GLXGLSupport::addConfig (this=0x7fffd84e1a00)
    at /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/GLX/OgreGLXGLSupport.cpp:255
#2  0x00007fffcfc47824 in Ogre::GLRenderSystem::GLRenderSystem (this=0x7ffff7eb4758)
    at /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/OgreGLRenderSystem.cpp:121
#3  0x00007fffcfc410cc in Ogre::GLPlugin::install (this=0x7fffdc3906b8)
    at /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/OgreGLPlugin.cpp:49
#4  0x00007ffff28a4fb1 in Ogre::Root::installPlugin (this=0x7ffff7ea48d8, plugin=plugin@entry=0x7fffdc3906b8)
    at /build/buildd/ogre-1.7.4+dfsg1/OgreMain/src/OgreRoot.cpp:1287
#5  0x00007fffcfc30c85 in Ogre::dllStartPlugin ()
    at /build/buildd/ogre-1.7.4+dfsg1/RenderSystems/GL/src/OgreGLEngineDll.cpp:41
#6  0x00007ffff28a51b2 in Ogre::Root::loadPlugin (this=<optimized out>, pluginName=...)
    at /build/buildd/ogre-1.7.4+dfsg1/OgreMain/src/OgreRoot.cpp:1332
#7  0x00007ffff6f80916 in gazebo::rendering::RenderEngine::LoadPlugins (
    this=this@entry=0x7ffff7519600 <SingletonT<gazebo::rendering::RenderEngine>::GetInstance()::t>)
    at /home/osrf/gazebo/gazebo/rendering/RenderEngine.cc:377
#8  0x00007ffff6f83b61 in gazebo::rendering::RenderEngine::Load (
    this=this@entry=0x7ffff7519600 <SingletonT<gazebo::rendering::RenderEngine>::GetInstance()::t>)
    at /home/osrf/gazebo/gazebo/rendering/RenderEngine.cc:124
#9  0x00007ffff6f88f3e in gazebo::rendering::load ()
    at /home/osrf/gazebo/gazebo/rendering/RenderingIface.cc:33
#10 0x00007ffff72cbae2 in gazebo::sensors::load () at /home/osrf/gazebo/gazebo/sensors/SensorsIface.cc:38
#11 0x00007ffff6609701 in gazebo::Server::LoadImpl (this=this@entry=0x7fffd80008e0, _elem=..., _physics=...)
    at /home/osrf/gazebo/gazebo/Server.cc:341
#12 0x00007ffff660a92e in gazebo::Server::LoadFile (this=0x7fffd80008e0, _filename=..., _physics=...)
    at /home/osrf/gazebo/gazebo/Server.cc:297
#13 0x0000000000436758 in ServerFixture::RunServer (this=0x6cbc20, _worldFilename=..., 
    _paused=<optimized out>, _physics=...) at /home/osrf/gazebo/test/ServerFixture.hh:214
#14 0x00007ffff5ebc6e9 in ?? () from /usr/lib/libboost_thread.so.1.49.0
#15 0x00007ffff63c2f8e in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#16 0x00007ffff54c2e1d in clone () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) 

Same error was found by @scpeters while starting gzserver in the same machine

osrf-migration commented 11 years ago

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


After installing ogre-1.8.0 the UNIT_Sensor_TEST is not failing anymore, but some others are, most of them related to sensors. For example UNIT_Sensor_TEST:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe4e5b700 (LWP 14825)]
0x00007fffdc59f34a in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
(gdb) bt
#0  0x00007fffdc59f34a in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
#1  0x00007fffdc5a052b in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
#2  0x00007fffdc5bb9b5 in Ogre::GLRenderSystem::GLRenderSystem() ()
   from /usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
#3  0x00007fffdc5b4b4c in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
#4  0x00007ffff28431f1 in Ogre::Root::installPlugin(Ogre::Plugin*) ()
   from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.0
#5  0x00007fffdc5a8415 in dllStartPlugin () from /usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so
#6  0x00007ffff284338a in Ogre::Root::loadPlugin(std::string const&) ()
   from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.0
#7  0x00007ffff6f75426 in gazebo::rendering::RenderEngine::LoadPlugins (
    this=this@entry=0x7ffff7519600 <SingletonT<gazebo::rendering::RenderEngine>::GetInstance()::t>)
    at /home/osrf/gazebo/gazebo/rendering/RenderEngine.cc:377
#8  0x00007ffff6f78671 in gazebo::rendering::RenderEngine::Load (
    this=this@entry=0x7ffff7519600 <SingletonT<gazebo::rendering::RenderEngine>::GetInstance()::t>)
    at /home/osrf/gazebo/gazebo/rendering/RenderEngine.cc:124
#9  0x00007ffff6f7dc1e in gazebo::rendering::load ()
    at /home/osrf/gazebo/gazebo/rendering/RenderingIface.cc:33
#10 0x00007ffff72cbdc2 in gazebo::sensors::load () at /home/osrf/gazebo/gazebo/sensors/SensorsIface.cc:38
#11 0x00007ffff65fd731 in gazebo::Server::LoadImpl (this=this@entry=0x7fffd80008e0, _elem=..., _physics=...)
    at /home/osrf/gazebo/gazebo/Server.cc:341
#12 0x00007ffff65fe95e in gazebo::Server::LoadFile (this=0x7fffd80008e0, _filename=..., _physics=...)
    at /home/osrf/gazebo/gazebo/Server.cc:297
#13 0x0000000000436718 in ServerFixture::RunServer (this=0x6b2280, _worldFilename=..., 
    _paused=<optimized out>, _physics=...) at /home/osrf/gazebo/test/ServerFixture.hh:214
#14 0x00007ffff5eb06e9 in ?? () from /usr/lib/libboost_thread.so.1.49.0
#15 0x00007ffff63b6f8e in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#16 0x00007ffff54b6e1d in clone () from /lib/x86_64-linux-gnu/libc.so.6

All them are pointed to gazebo::rendering::RenderEngine::LoadPlugins functions as the last gazebo function in the function call stack.

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Update: over 100 tests are currently failing in jenkins with intel gpu (basically any tests that load a server or try to use rendering).

I just did some testing on an intel NUC that we have connected to a projector in a conference room, and it was able to run gazebo whenever it was actively driving a display. However, it seg-faulted whenever I connected via ssh and the display was inactive. I have a backtrace without debug information:

Program received signal SIGSEGV, Segmentation fault.
0x00007fffcba260a8 in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
(gdb) bt
#0  0x00007fffcba260a8 in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
#1  0x00007fffcba2af69 in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
#2  0x00007fffcba7a05e in Ogre::GLRenderSystem::GLRenderSystem() () from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
#3  0x00007fffcba33dc4 in ?? () from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
#4  0x00007fffefcf09be in Ogre::Root::installPlugin(Ogre::Plugin*) () from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#5  0x00007fffcba703d6 in dllStartPlugin () from /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
#6  0x00007fffefcf0c77 in Ogre::Root::loadPlugin(std::string const&) () from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0
#7  0x00007ffff02e6408 in gazebo::rendering::RenderEngine::LoadPlugins() () from /usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.5
#8  0x00007ffff02e868a in gazebo::rendering::RenderEngine::Load() () from /usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.5
#9  0x00007ffff02ec903 in gazebo::rendering::load() () from /usr/lib/x86_64-linux-gnu/libgazebo_rendering.so.5
#10 0x000000000042e60d in gazebo::setupServer(int, char**) ()
#11 0x0000000000416c5f in gazebo::Server::ParseArgs(int, char**) ()
#12 0x000000000040ddd1 in ?? ()
#13 0x00007ffff4c1ba40 in __libc_start_main (main=0x40dcd0, argc=2, argv=0x7fffffffe5f8, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffe5e8) at libc-start.c:289
#14 0x000000000040fd39 in _start ()
(gdb)

I also compared the ~/.gazebo/ogre.log for failed and successful runs:

End of failed log:

16:30:45: *-*-* OGRE Initialising
16:30:45: *-*-* Version 1.9.0 (Ghadamon)
16:30:45: OverlayElementFactory for type Panel registered.
16:30:45: OverlayElementFactory for type BorderPanel registered.
16:30:45: OverlayElementFactory for type TextArea registered.
16:30:45: Registering ResourceManager for type Font
16:30:45: Loading library /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
16:30:45: Installing plugin: GL RenderSystem
16:30:45: OpenGL Rendering Subsystem created.

Middle of successful log:

16:33:17: *-*-* OGRE Initialising
16:33:17: *-*-* Version 1.9.0 (Ghadamon)
16:33:17: OverlayElementFactory for type Panel registered.
16:33:17: OverlayElementFactory for type BorderPanel registered.
16:33:17: OverlayElementFactory for type TextArea registered.
16:33:17: Registering ResourceManager for type Font
16:33:17: Loading library /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so
16:33:17: Installing plugin: GL RenderSystem
16:33:17: OpenGL Rendering Subsystem created.
16:33:17: Plugin successfully installed
16:33:17: Loading library /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/Plugin_ParticleFX.so

It seems to fail while attempting to install a plugin, as the backtrace seems to indicate.

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Also, there doesn't appear to be a noticeable difference in the glxinfo output when the screen is active or not.

osrf-migration commented 9 years ago

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


Interesting. This explains why I can use gazebo most of the times just fine on my laptop with an intel integrated graphic card but the jenkins node is failing.

We can try a couple of things:

I'm not sure about the differences between both approaches, I would say that if we go with the dummy driver, all our simulations that requires rendering (camera, laser, ...) will fail. The xvfb approach, was tested by Ricardo Tellez and seems to work fine.

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Let's try xvfb on our gpu-intel nodes and see if it helps.

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


For the NUC machines, there are some suggestions in this thread

osrf-migration commented 9 years ago

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


I've installed xvfb on our intel nodes and let jenkins to handle the xvfb startup and finalization through the xvfb jenkins plugin, configured to run on DISPLAY :11.

Here we go, the example It is running jus GpuLaser_TEST but should be enough. Graphic acceleration detection seems to be fine, it is still compiling.

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


That test looked good, not sure what all the LIBGL_DEBUG messages mean, but this is a big improvement!

osrf-migration commented 9 years ago

Original comment by Jose Luis Rivero (Bitbucket: Jose Luis Rivero, GitHub: j-rivero).


I enabled the LIBGL_DEBUG in my previous tests, supposing that the test failures were somewhat related to the rendering support. I've remove it.

Full testing branch with GPU support, 5 failing tests, two of them seems common with our usual nvidia job. The other three are:

* UNIT_DataLogger_TEST.xml.**

101: SharePercentChange[0.712652] ShareMaxPercentChange[1]
101: ResPercentChange[2.12628]ResMaxPercentChange[3]
101: SharePercentChange[0.5272973d4814726c8ded66a0ff826aa552ac8f9a] ShareMaxPercentChange[1]
101: ResPercentChange[0.482817]ResMaxPercentChange[3]
101/178 Test #101: UNIT_DataLogger_TEST ...................***Timeout 240.02 sec

* UNIT_GpuRaySensor_TEST.test_ran**

163: Test timeout computed to be: 240
163: [----------] Global test environment set-up.
163: [----------] 1 test from GPURaySensor_TEST
163: [ RUN      ] GPURaySensor_TEST.CreateLaser
163: [Msg] Waiting for master.
163: [Msg] Connected to gazebo master @ http://127.0.0.1:11345
163: [Msg] Publicized address: 172.23.1.170
163: [Dbg] [ServerFixture.cc:154] ServerFixture load in 0.7 seconds, timeout after 600 seconds
163: unknown file: Failure
163: C++ exception with description "OGRE EXCEPTION(7:InternalErrorException): Cannot create GL vertex buffer in GLHardwareVertexBuffer::GLHardwareVertexBuffer at /build/buildd/ogre-1.8-1.8.1+dfsg/RenderSystems/GL/src/OgreGLHardwareVertexBuffer.cpp (line 46)" thrown in the test body.
163/178 Test #163: UNIT_GpuRaySensor_TEST .................***Exception: SegFault 11.23 sec

* UNIT_ImagesView_TEST.xml.**


117: Test command: /var/lib/jenkins/workspace/gazebo-any-devel-trusty-amd64-gpu-intel-debug/build/gazebo/gui/viewers/UNIT_ImagesView_TEST "-xml" "-o" "/var/lib/jenkins/workspace/gazebo-any-devel-trusty-amd64-gpu-intel-debug/build/test_results/UNIT_ImagesView_TEST.xml"
117: Test timeout computed to be: 240
117: SharePercentChange[0.679459] ShareMaxPercentChange[1]
117: ResPercentChange[2.03693]ResMaxPercentChange[3]
117: SharePercentChange[0.000249273] ShareMaxPercentChange[1]
117: ResPercentChange[0.494918]ResMaxPercentChange[3]
117: UNIT_ImagesView_TEST: /usr/include/boost/thread/pthread/mutex.hpp:108: boost::mutex::~mutex(): Assertion `!posix::pthread_mutex_destroy(&m)' failed.
117/178 Test #117: UNIT_ImagesView_TEST ...................***Exception: Other 85.51 sec

We are close!

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


I get the same UNIT_GpuRaySensor_TEST failure in about 60% of my overnight tests

osrf-migration commented 8 years ago

Original comment by Ką Mykolas (Bitbucket: Kamiccolo).


UNIT_GpuRaySenor_TEST been failingon NVidia as well:

$ ./UNIT_GpuRaySensor_TEST 
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from GPURaySensor_TEST
[ RUN      ] GPURaySensor_TEST.CreateLaser
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: xxx.xxx.xxx.xxx
[Dbg] [ServerFixture.cc:145] ServerFixture load in 1.1 seconds, timeout after 600 seconds
unknown file: Failure
C++ exception with description "OGRE EXCEPTION(7:InternalErrorException): Cannot create GL vertex buffer in GLHardwareVertexBuffer::GLHardwareVertexBuffer at     /build/buildd/ogre-1.8-1.8.1+dfsg/RenderSystems/GL/src/OgreGLHardwareVertexBuffer.cpp (line 46)" thrown in the test body.
[Dbg] [ServerFixture.cc:96] ServerFixture::Unload
Segmentation fault (core dumped)

The fact that I couldn't reproduce it on GDB makes it similar to some kind of... race condition. Even thought, Valgrind produces following:

==18472== Thread 3:
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0x1D289094: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D22F425: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D231C6D: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D3475EF: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D348B1D: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D2691E4: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D269561: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D2695F7: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D346FD4: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D34FED0: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1CF74875: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1CF74BF7: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0x1D289094: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D22F425: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D22FCDC: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D37B170: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D37C5B0: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D2691E4: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D269561: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D2695F7: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D37B456: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D353EEA: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D2260F4: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==    by 0x1D208EAB: ??? (in /usr/lib/nvidia-340-updates/libnvidia-glcore.so.340.96)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E37: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41841A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:181)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E60: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41841A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:181)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E40: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41841A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:181)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E69: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41841A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:181)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E37: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41843A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:182)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E60: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41843A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:182)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E40: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41843A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:182)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
==18472== Conditional jump or move depends on uninitialised value(s)
==18472==    at 0xCF99E69: Ogre::PixelUtil::packColour(float, float, float, float, Ogre::PixelFormat, void*) (in /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.1)
==18472==    by 0xD417EA7: SkyX::VClouds::DataManager::_updateVolTextureData(SkyX::VClouds::DataManager::Cell***, SkyX::VClouds::DataManager::VolTextureId const&, int const&, int const&, int const&) (DataManager.cpp:693)
==18472==    by 0xD41843A: SkyX::VClouds::DataManager::create(int const&, int const&, int const&) (DataManager.cpp:182)
==18472==    by 0xD421571: SkyX::VClouds::VClouds::create() (VClouds.cpp:82)
==18472==    by 0xD415E2F: SkyX::VCloudsManager::create(float const&) (VCloudsManager.cpp:108)
==18472==    by 0x5A2FBA6: gazebo::rendering::Scene::SetSky() (Scene.cc:2667)
==18472==    by 0x5A3ACFF: gazebo::rendering::Scene::Init() (Scene.cc:329)
==18472==    by 0x5A20FD5: gazebo::rendering::RenderEngine::CreateScene(std::string const&, bool, bool) (RenderEngine.cc:192)
==18472==    by 0x5A27212: gazebo::rendering::create_scene(std::string const&, bool, bool) (RenderingIface.cc:88)
==18472==    by 0x44022B: gazebo::ServerFixture::RunServer(std::string const&, bool, std::string const&) (ServerFixture.cc:228)
==18472==    by 0x6F58A49: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0)
==18472==    by 0x631B183: start_thread (pthread_create.c:312)
==18472==
[Dbg] [ServerFixture.cc:145] ServerFixture load in [Wrn] [Publisher.cc:132] 20.8 seconds, timeout after 600 seconds
Queue limit reached for topic /gazebo/default/pose/local/info, deleting message. This warning is printed only once.
unknown file: Failure
C++ exception with description "OGRE EXCEPTION(7:InternalErrorException): Cannot create GL vertex buffer in GLHardwareVertexBuffer::GLHardwareVertexBuffer at /build/buildd/ogre-1.8-1.8.1+dfsg/RenderSystems/GL/src/OgreGLHardwareVertexBuffer.cpp (line 46)" thrown in the test body.
[Dbg] [ServerFixture.cc:96] ServerFixture::Unload
[Wrn] [Publisher.cc:132] Queue limit reached for topic /gazebo/default/physics/contacts, deleting message. This warning is printed only once.
[  FAILED  ] GPURaySensor_TEST.CreateLaser (39510 ms)
[----------] 1 test from GPURaySensor_TEST (39522 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (39568 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] GPURaySensor_TEST.CreateLaser

 1 FAILED TEST
osrf-migration commented 8 years ago

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).


osrf-migration commented 7 years ago

Original comment by Alexey Denisov (Bitbucket: denisov_alexey).


Don't know if this is related to this bug, but I got a similar crash with backtrace which looked like @Kamiccolo's one. It was due to wrong texture indexing in VClouds::DataManager, and can be fixed with this patch:

diff -r 095ee3acebe41d2d91506dd4d59444113537a636 gazebo/rendering/skyx/src/VClouds/DataManager.cpp
--- a/gazebo/rendering/skyx/src/VClouds/DataManager.cpp Wed May 03 14:44:20 2017 +0000
+++ b/gazebo/rendering/skyx/src/VClouds/DataManager.cpp Thu May 04 12:33:56 2017 +0500
@@ -22,6 +22,8 @@
 */

 #include <vector>
+
+#include <OgrePixelFormat.h>
 #include "VClouds/DataManager.h"

 #include "VClouds/VClouds.h"
@@ -689,8 +691,9 @@
       {
         for (x = pb.left; x < pb.right; x++)
         {
+          Ogre::uint8* ptr = (Ogre::uint8 *) pb.data + (x + y * pb.rowPitch + z * pb.slicePitch) * Ogre::PixelUtil::getNumElemBytes(pb.format);
           Ogre::PixelUtil::packColour(c[x][y][z].dens/* TODO!!!! */,
-              c[x][y][z].light, 0, 0, pb.format, &pbptr[x]);
+              c[x][y][z].light, 0, 0, pb.format, ptr);
         }
         pbptr += pb.rowPitch;
       }
osrf-migration commented 7 years ago

Original comment by Louise Poubel (Bitbucket: chapulina, GitHub: chapulina).


@denisov_alexey 's patch is applied to the default branch (gazebo 9) by @kartikmohta on pull request #2719