opengl app segfaults on startup when not in gdb, backtrace points to fglrx

Asked by Jarvis Schultz on 2013-07-17

I'm trying to use the program "rviz" that is part of the robot operating system (ROS) on their groovy version. I have been using it for years, but on the newest version, I get a segfault every time I execute the program. If I run the program in "gdb" however, it runs every single time with no problems. I have already tried talking to OpenGL forums, ROS forums, and OGRE forums. I have received no help at all. Not sure if this is a valid place to ask the question, but here goes.

A coredump + gdb to postmortem reveals the following backtrace:

    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 ?? ()

Valgrind produces an error that looks like the following:

    ==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)

Here is a link to the full startup log produced by OGRE: http://pastebin.com/ESa9mjRZ
Here is a link to the full valgrind output: http://pastebin.com/1Hbe92hJ
Question on answers.ros.org: http://answers.ros.org/question/62534/rviz-on-groovy-only-works-if-started-in-gdb/
Question in OGRE forums: http://www.ogre3d.org/forums/viewtopic.php?t=77793

Any ideas on how to proceed would be much appreciated.

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu fglrx-installer Edit question
Assignee:
No assignee Edit question
Last query:
2013-07-18
Last reply:
2013-07-18

What is the output of:

sudo lshw -C display; lsb_release -a; uname -a

Thanks

Jarvis Schultz (jarvisschultz) said : #2

I definitely should have included that information. Sorry about that.

sudo lshw -C display; lsb_release -a; uname -a :
      *-display
           description: VGA compatible controller
           product: RV730 XT [Mobility Radeon HD 4670]
           vendor: Hynix Semiconductor (Hyundai Electronics)
           physical id: 0
           bus info: pci@0000:02:00.0
           version: 00
           width: 32 bits
           clock: 33MHz
           capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
           configuration: driver=fglrx_pci latency=0
           resources: irq:50 memory:d0000000-dfffffff ioport:2000(size=256) memory:cfef0000-cfefffff memory:cfe00000-cfe1ffff
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 12.04.2 LTS
    Release: 12.04
    Codename: precise
    Linux vedauwoo 3.2.0-48-generic #74-Ubuntu SMP Thu Jun 6 19:43:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Also fglrxinfo:
    display: :0.0 screen: 0
    OpenGL vendor string: Advanced Micro Devices, Inc.
    OpenGL renderer string: ATI Mobility Radeon HD 4670
    OpenGL version string: 3.3.11627 Compatibility Profile Context FireGL

Finally here is a link to a pastebin with a bunch more system information that I forgot to include: http://pastebin.com/rMarADb3

There is aknown issue with 2xxx 3xxx and 4xxx ATi GPUs and Precise. Did you install fglrx from here:
https://launchpad.net/~makson96/+archive/fglrx

?

Jarvis Schultz (jarvisschultz) said : #4

I was using just the version from the standard ppa. I just added the ppa you linked, and installed all relevant fglrx-legacy packages. Restarted my computer, and indeed, different versions of fglrx were loaded. "amdcccle" and fglrxinfo also reported different versions.

Unfortunately, that has not solved my issue.

Can you help with this problem?

Provide an answer of your own, or ask Jarvis Schultz for more information if necessary.

To post a message you must log in.