FS#15354 - [xf86-video-savage] Recent mesa/libgl upgrade causes segfault

Attached to Project: Arch Linux
Opened by John Wolfe (igneous) - Friday, 03 July 2009, 06:37 GMT
Last edited by Roman Kyrylych (Romashka) - Saturday, 04 July 2009, 05:12 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: Applications like glxgears and glxinfo segfault after the mesa/libgl upgrade to 7.4.4. I can't confirm this on anything other than savage hardware.

Additional info:

Direct rendering still seems to work. I get about the same framerate in quake3/tremulous as I did before.. I'd be more than willing to provide any additional information on request. Here's the most relevant bits regarding this bug:

[igneous@lamehostname ~]$ lspci | grep -i vga
01:00.0 VGA compatible controller: S3 Inc. SuperSavage IX/C SDR (rev 05)

[igneous@lamehostname ~]$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_visual_select_group
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_visual_select_group
OpenGL vendor string: S3 Graphics Inc.
OpenGL renderer string: Mesa DRI SuperSavage 20061110 x86/MMX/SSE
OpenGL version string: 1.2 Mesa 7.4.4
OpenGL extensions:
GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_texture_compression, GL_ARB_texture_env_add,
GL_ARB_texture_mirrored_repeat, GL_ARB_transpose_matrix,
GL_ARB_vertex_buffer_object, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_logic_op, GL_EXT_blend_minmax,
GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
GL_EXT_compiled_vertex_array, GL_EXT_convolution, GL_EXT_copy_texture,
GL_EXT_draw_range_elements, GL_EXT_histogram, GL_EXT_packed_pixels,
GL_EXT_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_stencil_wrap, GL_EXT_subtexture,
GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_lod_bias, GL_EXT_texture_object,
GL_EXT_vertex_array, GL_APPLE_packed_pixels, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_MESA_window_pos,
GL_NV_light_max_exponent, GL_NV_texgen_reflection, GL_OES_read_format,
GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_texture_edge_clamp,
GL_SGIS_texture_lod
*** glibc detected *** glxinfo: free(): invalid next size (fast): 0x09d03638 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7e6c281]
/lib/libc.so.6[0xb7e6d9ba]
/lib/libc.so.6(cfree+0x6d)[0xb7e70abd]
/usr/lib/xorg/modules/dri/libdricore.so(_mesa_free+0x1d)[0xb7aac17d]
/usr/lib/xorg/modules/dri/libdricore.so(_swsetup_DestroyContext+0x2c)[0xb7b8a12c]
/usr/lib/xorg/modules/dri/savage_dri.so[0xb7c24d13]
/usr/lib/xorg/modules/dri/savage_dri.so[0xb7c20f97]
/usr/lib/libGL.so.1[0xb7fac72c]
/usr/lib/libGL.so.1[0xb7f8810f]
glxinfo[0x804af0c]
/lib/libc.so.6(__libc_start_main+0xe6)[0xb7e16a36]
glxinfo[0x8048e51]
======= Memory map: ========
08048000-0804d000 r-xp 00000000 08:02 94562 /usr/bin/glxinfo
0804d000-0804e000 rwxp 00005000 08:02 94562 /usr/bin/glxinfo
09a8f000-09d17000 rwxp 00000000 00:00 0 [heap]
b1500000-b1521000 rwxp 00000000 00:00 0
b1521000-b1600000 ---p 00000000 00:00 0
b171f000-b19d3000 rwxp 00000000 00:00 0
b19d3000-b69d3000 rwxs e8000000 00:0c 7888 /dev/dri/card0
b69d3000-b79d3000 rwxs e8000000 00:0c 7888 /dev/dri/card0
b79d3000-b79f7000 r-xp 00000000 08:02 34187 /usr/lib/libexpat.so.1.5.2
b79f7000-b79f9000 rwxp 00023000 08:02 34187 /usr/lib/libexpat.so.1.5.2
b7a21000-b7bfa000 r-xp 00000000 08:02 358381 /usr/lib/xorg/modules/dri/libdricore.so
b7bfa000-b7c0e000 rwxp 001d9000 08:02 358381 /usr/lib/xorg/modules/dri/libdricore.so
b7c0e000-b7c19000 rwxp 00000000 00:00 0
b7c19000-b7c5f000 r-xp 00000000 08:02 80699 /usr/lib/xorg/modules/dri/savage_dri.so
b7c5f000-b7c61000 rwxp 00046000 08:02 80699 /usr/lib/xorg/modules/dri/savage_dri.so
b7c61000-b7c63000 rwxp 00000000 00:00 0
b7c63000-b7c6a000 r-xp 00000000 08:02 2660 /lib/librt-2.10.1.so
b7c6a000-b7c6b000 r-xp 00006000 08:02 2660 /lib/librt-2.10.1.so
b7c6b000-b7c6c000 rwxp 00007000 08:02 2660 /lib/librt-2.10.1.so
b7c6c000-b7c70000 r-xp 00000000 08:02 424659 /usr/lib/libXdmcp.so.6.0.0
b7c70000-b7c71000 rwxp 00003000 08:02 424659 /usr/lib/libXdmcp.so.6.0.0
b7c71000-b7c73000 r-xp 00000000 08:02 50135 /usr/lib/libXau.so.6.0.0
b7c73000-b7c74000 rwxp 00001000 08:02 50135 /usr/lib/libXau.so.6.0.0
b7c74000-b7c76000 r-xp 00000000 08:02 2669 /lib/libdl-2.10.1.so
b7c76000-b7c77000 r-xp 00001000 08:02 2669 /lib/libdl-2.10.1.so
b7c77000-b7c78000 rwxp 00002000 08:02 2669 /lib/libdl-2.10.1.so
b7c78000-b7c8c000 r-xp 00000000 08:02 2658 /lib/libpthread-2.10.1.so
b7c8c000-b7c8d000 r-xp 00014000 08:02 2658 /lib/libpthread-2.10.1.so
b7c8d000-b7c8e000 rwxp 00015000 08:02 2658 /lib/libpthread-2.10.1.so
b7c8e000-b7c91000 rwxp 00000000 00:00 0
b7c91000-b7c99000 r-xp 00000000 08:02 190057 /usr/lib/libdrm.so.2.4.0
b7c99000-b7c9a000 rwxp 00008000 08:02 190057 /usr/lib/libdrm.so.2.4.0
b7c9a000-b7cb2000 r-xp 00000000 08:02 50169 /usr/lib/libxcb.so.1.1.0
b7cb2000-b7cb3000 rwxp 00017000 08:02 50169 /usr/lib/libxcb.so.1.1.0
b7cb3000-b7cc3000 r-xp 00000000 08:02 50177 /usr/lib/libxcb-glx.so.0.0.0
b7cc3000-b7cc4000 rwxp 00010000 08:02 50177 /usr/lib/libxcb-glx.so.0.0.0
b7cc4000-b7cc5000 r-xp 00000000 08:02 51378 /usr/lib/libX11-xcb.so.1.0.0
b7cc5000-b7cc6000 rwxp 00000000 08:02 51378 /usr/lib/libX11-xcb.so.1.0.0
b7cc6000-b7cca000 r-xp 00000000 08:02 321800 /usr/lib/libXfixes.so.3.1.0
b7cca000-b7ccb000 rwxp 00003000 08:02 321800 /usr/lib/libXfixes.so.3.1.0
b7ccb000-b7ccd000 r-xp 00000000 08:02 424650 /usr/lib/libXdamage.so.1.1.0
b7ccd000-b7cce000 rwxp 00001000 08:02 424650 /usr/lib/libXdamage.so.1.1.0
b7cce000-b7ccf000 rwxp 00000000 00:00 0
b7ccf000-b7cd3000 r-xp 00000000 08:02 56935 /usr/lib/libXxf86vm.so.1.0.0
b7cd3000-b7cd4000 rwxp 00003000 08:02 56935 /usr/lib/libXxf86vm.so.1.0.0
b7cd4000-b7ce2000 r-xp 00000000 08:02 424569 /usr/lib/libXext.so.6.4.0
b7ce2000-b7ce3000 rwxp 0000d000 08:02 424569 /usr/lib/libXext.so.6.4.0
b7ce3000-b7dfc000 r-xp 00000000 08:02 51383 /usr/lib/libX11.so.6.2.0
b7dfc000-b7e00000 rwxp 00118000 08:02 51383 /usr/lib/libX11.so.6.2.0
b7e00000-b7f42000 r-xp 00000000 08:02 2668 /lib/libc-2.10.1.so
b7f42000-b7f44000 r-xp 00142000 08:02 2668 /lib/libc-2.10.1.so
b7f44000-b7f45000 rwxp 00144000 08:02 2668 /lib/libc-2.10.1.so
b7f45000-b7f48000 rwxp 00000000 00:00 0
b7f48000-b7f6c000 r-xp 00000000 08:02 2628 /lib/libm-2.10.1.so
b7f6c000-b7f6d000 r-xp 00023000 08:02 2628 /lib/libm-2.10.1.so
b7f6d000-b7f6e000 rwxp 00024000 08:02 2628 /lib/libm-2.10.1.so
b7f6e000-b7fc9000 r-xp 00000000 08:02 56978 /usr/lib/libGL.so.1.2
b7fc9000-b7fd2000 rwxp 0005b000 08:02 56978 /usr/lib/libGL.so.1.2
b7fd2000-b7fd4000 rwxp 00000000 00:00 0
b7fdb000-b7ff8000 r-xp 00000000 08:02 6932 /usr/lib/libgcc_s.so.1
b7ff8000-b7ff9000 rwxp 0001c000 08:02 6932 /usr/lib/libgcc_s.so.1
b7ff9000-b7ffb000 rwxs e29c1000 00:0c 7888 /dev/dri/card0
b7ffb000-b7ffc000 rwxp 00000000 00:00 0
b7ffc000-b7ffd000 r-xp 00000000 00:00 0 [vdso]
b7ffd000-b8019000 r-xp 00000000 08:02 2622 /lib/ld-2.10.1.so
b8019000-b801a000 r-xp 0001b000 08:02 2622 /lib/ld-2.10.1.so
b801a000-b801b000 rwxp 0001c000 08:02 2622 /lib/ld-2.10.1.so
bfdf7000-bfe0c000 rw-p 00000000 00:00 0 [stack]
Aborted


[igneous@lamehostname ~]$ glxgears
Segmentation fault
[igneous@lamehostname ~]$ dmesg | tail -n 1
glxgears[23783]: segfault at 0 ip (null) sp bfedb35c error 4 in glxgears[8048000+4000]

Steps to reproduce:
1. Have the pleasure of owning S3 hardware
2. upgrade to Mesa 7.4.4 from 7.4.2
3. enjoy crashing mesa utils!
This task depends upon

Closed by  Roman Kyrylych (Romashka)
Saturday, 04 July 2009, 05:12 GMT
Reason for closing:  Fixed
Comment by Gerardo Exequiel Pozzi (djgera) - Friday, 03 July 2009, 17:46 GMT
  • Field changed: Summary (Recent glibc/mesa/libgl upgrade causes segfault on mesa utils → Recent mesa/libgl upgrade causes segfault on mesa utils)
To discard problem with "buggy files" what are the md5sum of these files all are correct?

# From libgl-7.4.4-1-i686
42caf34fb9fba6789654be9eab42b389 /usr/lib/libGL.so.1.2
cd758880a5dccdfda5ee3099dbf9e991 /usr/lib/xorg/modules/dri/libdricore.so
e4d33cb0ad12dc51b2414d60e7774947 /usr/lib/xorg/modules/dri/swrast_dri.so
63fd8ed39467a2e8e98a82acdea12f2e /usr/lib/xorg/modules/extensions/libglx.so

# From mesa-7.4.4-1-i686
07827bb8707985bf7b4ff40df5ea5ae3 /usr/bin/glxgears
f51880c3039018ebe342fd447ee642a1 /usr/bin/glxinfo
39ee861eacef1fa9f12d10f6b70e6067 /usr/lib/libGLU.so.1.3.070404
35da99867d9619103afd02071809d536 /usr/lib/libGLw.so.1.0.0

# From xf86-video-savage-2.2.1-5
34f30a04b05251d67b0c086a8fedf4f4 /usr/lib/xorg/modules/dri/savage_dri.so

If all good, try to run without "savage" loaded, only with "vesa".
Comment by Jan de Groot (JGC) - Friday, 03 July 2009, 17:51 GMT
The libdricore.so file is a hack from fedora to build it shared across all dri drivers. This decreases driver size a lot. The problem with this thing is that it's not API or ABI stable, as usually it's built static inside the driver itself. The savage driver contains DRI drivers from 7.4, the libgl package contains 7.4.4. Things have been changed between these versions, so things like this will happen.
Updating the mesa version in the savage driver should fix this problem, and is what I will do as soon as I get my hands on the savage driver (there's a "new" release).
Comment by Jan de Groot (JGC) - Friday, 03 July 2009, 20:33 GMT
xf86-video-savage 2.3.0 is in the repositories, which includes the mesa 7.4.4 driver files.
Comment by John Wolfe (igneous) - Saturday, 04 July 2009, 00:22 GMT
Thanks very much Jan. That's fixed the problem!

Loading...