rviz on groovy only works if started in gdb [closed]
I am having serious problems with my Fuerte install since the update released to the repository a few days ago (ros-fuerte-desktop-full 1.0.0-s1367681458~precise, bug report here, but likely filed in the wrong place). So I am trying to begin the process of migrating all of my code to the new build system so I can start using Groovy/Hydro. The problem is that every time I start rviz
I get
[ INFO] [1368200619.347291158]: rviz version 1.9.29
[ INFO] [1368200619.347507729]: compiled against OGRE version 1.7.4 (Cthugha)
Segmentation fault
Here is my ogre log, and my system info from the rviz system_info.sh
script in Fuerte.
The weird part is that if I run rviz
in gdb
, everything works without crashing. This is very reproducible; I have never had rviz
work outside of gdb
, and it has worked every single time inside of gdb
.
Does anyone have any suggestions about how to begin debugging this?
EDIT 1
It seems that the comment from @dgossow is likely correct. I was able to produce a core dump from the rviz
segfault, and then postmortem that core dump with gdb
The backtrace is as follows:
Core was generated by `/opt/ros/groovy/lib/rviz/rviz'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007fbce7bbe21c in ?? () from /usr/lib/fglrx/libGL.so.1
(gdb) bt
#0 0x00007fbce7bbe21c in ?? () from /usr/lib/fglrx/libGL.so.1
#1 0x00007fbce7d39bdb in ?? () from /usr/lib/fglrx/libGL.so.1
#2 0x0000000000000001 in ?? ()
#3 0x0000000000000001 in ?? ()
#4 0x000000000000005f in ?? ()
#5 0x00007fbce7d39d20 in ?? () from /usr/lib/fglrx/libGL.so.1
#6 0x000000000000590e in ?? ()
#7 0x0000000000000000 in ?? ()
That obviously doesn't tell me much, but it does point to a problem in my graphics drivers. Running in valgrind provides slightly more useful information. The full log can be seen here. The most relevant part is:
==25602== Conditional jump or move depends on uninitialised value(s)
==25602== at 0x2B3A9F95: ??? (in /usr/lib/fglrx/dri/fglrx_dri.so)
==25602== by 0xFFFFFFFFFFFFFFFE: ???
==25602== by 0xFFFFFFFFFFFFFFFE: ???
==25602== by 0xC07FFFFEFFFFFFFF: ???
==25602== by 0x7FEFFE01F: ???
==25602== by 0x2D773F0F: ???
==25602== by 0x2D7752AF: ???
==25602== by 0x2D77732B: ???
==25602== by 0x2B426FB7: ??? (in /usr/lib/fglrx/dri/fglrx_dri.so)
==25602==
==25602==
==25602== Process terminating with default action of signal 11 (SIGSEGV)
==25602== Bad permissions for mapped region at address 0x2EE869D8
==25602== at 0x979521C: ??? (in /usr/lib/fglrx/libGL.so.1.2)
==25602== by 0x26E1DB0F: ???
==25602== by 0x2EBCB4B5: ??? (in /usr/lib/x86_64-linux-gnu/OGRE-1.7.4/RenderSystem_GL.so)
==25602== by 0x2AD71377: ???
==25602== by 0x990304F: ??? (in /usr/lib/fglrx/libGL.so.1.2)
==25602== by 0x7FEFFE36F: ???
==25602== by 0x9910BDA: ??? (in /usr/lib/fglrx/libGL.so.1.2)
Still doesn't give me much to go off of. Any ideas on how I should proceed?
The fact that RViz crashes immediately after calling GLXWindow::create hints at a driver bug. Did you maybe also get a driver update at the same time as updating ROS?
No I didn't, and the Fuerte version of rviz still works fine.