Bug 32654

Summary: Segfault in r300_dri.so while running OpenGL game fullscreen
Product: Mesa Reporter: John Mesmon <jmesmon>
Component: Drivers/DRI/r300Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: medium CC: jmesmon
Version: 7.9   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: JVM's error log
jvm error log 2
jvm error log mesa 7.10

Description John Mesmon 2010-12-25 14:22:15 UTC
Created attachment 41448 [details] [review]
JVM's error log

Specific game is minecraft. Utilizes the lwjgl libraries to preform opengl calls.

After entering a 3D portion of the game (non-menu) for a possibly very short time (still highly variable, ~1 minute to ~5 minutes) the JVM reports that a segfault has occurred in r300_dri.so+0x36477. JVM's error log is attached.

On the same system, using a r100 based card (Radeon 7400) completely eliminates the crashes.

The same crashes are present on another system (note that the second system is similar to the first, x86, gentoo linux, Pentium 4).
Comment 1 John Mesmon 2010-12-25 14:29:32 UTC
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RV350 4150) 20090101 x86/MMX/SSE2 TCL DRI2
OpenGL version string: 1.5 Mesa 7.9

VGA compatible controller: ATI Technologies Inc RV350 AP [Radeon 9600]
Comment 2 John Mesmon 2010-12-26 21:58:51 UTC
Switching from the classic driver to the gallium driver appears to avoid the segfault (obviously, I cannot be sure until I run the game for a _very_ long time)
Comment 3 Michel Dänzer 2010-12-27 01:16:47 UTC
Please try to get more information about the crash, e.g. by making sure debugging symbols are available for /usr/lib/dri/r300_dri.so.
Comment 4 John Mesmon 2011-01-06 22:50:28 UTC
Recompiled with debug information, ran the game again until crash to confirm address was the same (attached log as jvm log 2).

$ addr2line -e /usr/lib/debug/usr/lib/mesa/r300_dri.so.debug 0x36477
/var/tmp/portage/media-libs/mesa-7.9-r1/work/Mesa-7.9/src/mesa/drivers/dri/r300/radeon_dma.c:69
Comment 5 John Mesmon 2011-01-06 22:51:01 UTC
Created attachment 41739 [details]
jvm error log 2
Comment 6 Michel Dänzer 2011-01-17 03:24:33 UTC
(In reply to comment #4)
> $ addr2line -e /usr/lib/debug/usr/lib/mesa/r300_dri.so.debug 0x36477
> /var/tmp/portage/media-libs/mesa-7.9-r1/work/Mesa-7.9/src/mesa/drivers/dri/r300/radeon_dma.c:69

Can you get this information for the other r300_dri.so frame as well?

Something like a full gdb backtrace from the crash would be ideal, but not being a Java expert, I lack the knowledge how you could get that or if it's even possible.
Comment 7 John Mesmon 2011-01-17 11:39:17 UTC
I recently updated to Mesa-7.10, and (very painfully) managed to obtain a backtrace. The painful part was due to the jvm spuriously receiving segfaults (which it ignores?) every 4 seconds or so.

(gdb) bt
#0  0x9063bb17 in radeonEmitVec4 (out=0x8b814ec0, data=0x8efdda18, stride=32, count=96) at radeon_dma.c:69
#1  0x906234f9 in r300AllocDmaRegions (ctx=0x8689b98, arrays=0x860d5b8, prim=0x909fea48, nr_prims=1, ib=0x0, 
    index_bounds_valid=1 '\001', min_index=0, max_index=95) at r300_draw.c:553
#2  r300TryDrawPrims (ctx=0x8689b98, arrays=0x860d5b8, prim=0x909fea48, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, 
    max_index=95) at r300_draw.c:684
#3  r300DrawPrims (ctx=0x8689b98, arrays=0x860d5b8, prim=0x909fea48, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, 
    max_index=95) at r300_draw.c:741
#4  0x906cf186 in vbo_draw_arrays (ctx=0x8689b98, mode=<value optimized out>, start=0, count=96, numInstances=1)
    at vbo/vbo_exec_array.c:588
#5  0x90998a3d in Java_org_lwjgl_opengl_GL11_nglDrawArrays () from /home/codes/.minecraft/bin/natives/liblwjgl.so
#6  0xb562cd2b in ?? ()
#7  0xb563af14 in ?? ()
#8  0xb54b3e21 in ?? ()
#9  0xb54b3e21 in ?? ()
#10 0xb54b3e21 in ?? ()
#11 0xb54b3e21 in ?? ()
#12 0xb54b42fd in ?? ()
#13 0xb54b1366 in ?? ()
#14 0xb77ab4e4 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#15 0xb78a8499 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#16 0xb77aa48f in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#17 0xb77aa8e2 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#18 0xb77aaa38 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#19 0xb77fdd77 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#20 0xb795504c in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#21 0xb7955112 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#22 0xb78aea69 in ?? () from /opt/icedtea6-bin-1.9.2/jre/lib/i386/client/libjvm.so
#23 0xb7f94ce3 in start_thread (arg=0x909ffb70) at pthread_create.c:301
#24 0xb7ef888e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133
Comment 8 John Mesmon 2011-01-17 11:41:04 UTC
Created attachment 42125 [details]
jvm error log mesa 7.10
Comment 9 John Mesmon 2011-01-17 14:12:38 UTC
additionally, note that the game was not run full-screen to generate the crash in 7.10, meaning the bug's title is slightly inaccurate.

I never fully tested non-full screen in 7.9, but it seems likely the full-screen has nothing to do with it there either.
Comment 10 Jerome Glisse 2011-03-07 11:25:50 UTC
r300c is not actively supported, closing this bug as it seems r300g works, reopen if r300g is broken too

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.