Bug 47289

Summary: SIGSEGV at r300_state.c:1066
Product: Mesa Reporter: ronbaby <rfg-freedesktop>
Component: Drivers/DRI/r300Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED WONTFIX QA Contact:
Severity: critical    
Priority: medium    
Version: 7.11   
Hardware: x86-64 (AMD64)   
OS: FreeBSD   
Whiteboard:
i915 platform: i915 features:

Description ronbaby 2012-03-13 14:25:10 UTC
I have been using a program called "gthumb" for some time now, and it
has worked well for me.

Recently, I upgraded some of my hardware.  Specifically, I bought a new
monitor and a nice "X600" (Radeon) card to hang that off of.  Since then,
gthumb crashes consistantly, shortly after startup.  (I'm on FreeBSD 8.2,
by the way.)

I made some modest efforts to try to find out what was going on, but frankly,
this graphics stuff is pretty much all greek to me.  I did however rebuild
and re-install both gthumb and dri with debugging info so that I could at
least get a stack trace from the coredump file.

So here is some (gdb) context for the SIGSEGV crash of gthumb:

#0  0x0000000805453233 in r300UpdateWindow (ctx=0x80534a000)
    at r300_state.c:1066
1066            GLfloat sx = v[MAT_SX];
[New Thread 8052041c0 (LWP 100247)]
(gdb) where
#0  0x0000000805453233 in r300UpdateWindow (ctx=0x80534a000)
    at r300_state.c:1066
#1  0x0000000805456a83 in r300ResetHwState (r300=0x8052f8000)
    at r300_state.c:2195
#2  0x00000008054588ec in r300InitState (r300=0x8052f8000) at r300_state.c:2750
#3  0x00000008054451fd in r300CreateContext (glVisual=0x805308700, 
    driContextPriv=0x80524d220, sharedContextPrivate=0x0) at r300_context.c:382
#4  0x000000080543b5bf in radeonCreateContext (glVisual=0x805308700, 
    driContextPriv=0x80524d220, sharedContextPriv=0x0) at radeon_screen.c:1143
#5  0x0000000805435793 in driCreateNewContext (psp=0x80524e480, 
    config=0x805308700, render_type=32788, shared=0x0, hwContext=3, 
    data=0x80524d1f0) at ../common/dri_util.c:587
#6  0x0000000802f2d70f in driCreateContext () from /usr/local/lib/libGL.so.1
#7  0x0000000802f08320 in CreateContext () from /usr/local/lib/libGL.so.1
#8  0x0000000802f086dc in glXCreateNewContext () from /usr/local/lib/libGL.so.1
#9  0x0000000800a61255 in cogl_pango_glyph_cache_new ()
   from /usr/local/lib/libclutter-glx-1.0.so.0
#10 0x00000008009ebfdb in clutter_feature_available ()
   from /usr/local/lib/libclutter-glx-1.0.so.0
#11 0x00000008009f6045 in clutter_get_option_group_without_init ()
   from /usr/local/lib/libclutter-glx-1.0.so.0
#12 0x00000008009f626f in clutter_init ()
   from /usr/local/lib/libclutter-glx-1.0.so.0
#13 0x00000000004c3b59 in main (argc=1, argv=0x7fffffffe300) at main.c:561
(gdb) print v
$1 = (const GLfloat *) 0x800000000
(gdb) print *$1
Cannot access memory at address 0x800000000
(gdb) 


I did some grepping around and found that MAT_SX is #defined to the value 0.
Thus, the gdb command "print v[0]" or equivalently "print *v" should give a
clearer picture of what is causing the problem, and as you can see, indeed
it does.  The process virtual space at 0x800000000 is apparently not mapped
in.  Thus, the attempt to fetch the contents of v[MAT_SX] quite reasonably
results in a SIGSEGV and a coredump.

After getting this far, I read the page:

   http://dri.freedesktop.org/wiki/DriTroubleshooting

and checked everything I could that was listed there and all seems to be
well.  The radeon.ko module does seem to be loaded into the kernel, and the
folliowing line does exist in my /var/log/Xorg.0.log file:

(II) RADEON(0): Direct rendering enabled

Additionally, after doing "setenv LIBGL_DEBUG verbose" and re-running
gthumb, most everything seems to be OK, however it is apparent that
there are a couple of (optional?) DRI configuration files that simply
are not present.  (Do I need to have one or both of these?)

% gthumb .
libGL: XF86DRIGetClientDriverName: 5.3.0 r300 (screen 0)
libGL: OpenDriver: trying /usr/local/lib/dri/r300_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenByBusid: Searching for BusID pci:0000:02:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenByBusid: drmOpenMinor returns 6
drmOpenByBusid: drmGetBusid reports pci:0000:02:00.0
libGL error: 
Can't open configuration file /etc/drirc: No such file or directory.
libGL error: 
Can't open configuration file /usr/home/rfg/.drirc: No such file or directory.
Segmentation fault (core dumped)


So anyway, long story short, I could use some help here.  I'd kinda like
to be able to run gthumb again, you know, without it crashing right off
the bat.
Comment 1 Andreas Boll 2014-07-07 16:43:40 UTC
The classic r300 driver has been abandoned long ago.
It was replaced by the Gallium driver r300g.

If you have issues with r300g please file a new bug report with component Drivers/Gallium/r300

Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.