Bug 5323 - Seg Fault on startup
Status: RESOLVED DUPLICATE of bug 5315
Alias: None
Product: Super Meat Boy
Classification: Unclassified
Component: everything
Version: unspecified
Hardware: PC Linux
: P3 critical
Assignee: Ryan C. Gordon
QA Contact:
URL:
Depends on:
Blocks:
 
Reported: 2011-12-13 17:09 EST by David
Modified: 2011-12-20 05:28:47 EST
6 users (show)

See Also:


Attachments
strace Debian Lenny (462.02 KB, application/octet-stream)
2011-12-14 00:33 EST, David
strace Debian Lenny (462.02 KB, text/plain)
2011-12-14 00:34 EST, David
ltrace (23.03 KB, text/plain)
2011-12-15 06:29 EST, slayersonlin3
non-working strace (337.45 KB, text/plain)
2011-12-15 15:47 EST, Fibonacci Prower
working strace (828.30 KB, text/plain)
2011-12-15 15:48 EST, Fibonacci Prower

Description David 2011-12-13 17:09:30 EST
david@Miho:/opt/SuperMeatBoy$ ./SuperMeatBoy
Super Meat Boy: Installed in '.'.
Super Meat Boy: Using x86 version.
Segmentation fault
david@Miho:/opt/SuperMeatBoy$           

It opens a large black window and then after a couple seconds, the window dies and it prints a segmentation fault.

Installed from Humble Indie Bundle #4 
(supermeatboy-linux-12132011b-bin)

OS: 
Debian GNU/Linux 5.0
ATI Catalyst 9.3
Pentium-M 2.0 Ghz
ATI Radeon Mobility X700
Comment 1 David 2011-12-13 17:10:05 EST
david@Miho:/opt/SuperMeatBoy/x86$ ldd ./SuperMeatBoy-x86
        linux-gate.so.1 =>  (0xb77ac000)
        libSDL-1.2.so.0 => /opt/SuperMeatBoy/x86/./libSDL-1.2.so.0 (0xb7717000)
        libopenal.so.1 => /opt/SuperMeatBoy/x86/./libopenal.so.1 (0xb76d2000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb769d000)
        libstdc++.so.6 => /opt/SuperMeatBoy/x86/./libstdc++.so.6 (0xb75da000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb75b4000)
        libgcc_s.so.1 => /opt/SuperMeatBoy/x86/./libgcc_s.so.1 (0xb759c000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7456000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7451000)
        librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7448000)
        /lib/ld-linux.so.2 (0xb77ad000)
david@Miho:/opt/SuperMeatBoy/x86$
Comment 2 David 2011-12-13 17:11:42 EST
david@Miho:/opt/SuperMeatBoy/x86$ 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_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, 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_swap_control,
    GLX_MESA_swap_frame_usage, GLX_NV_swap_group, 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_swap_barrier, GLX_SGIX_swap_group,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_MESA_swap_control, GLX_NV_swap_group, GLX_OML_swap_method,
    GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
    GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI MOBILITY RADEON X700
OpenGL version string: 2.1.8543 Release
OpenGL extensions:
    GL_AMD_performance_monitor, GL_ARB_depth_texture, GL_ARB_draw_buffers,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
    GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shader_objects,
    GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_shadow_ambient,
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
    GL_ARB_texture_env_dot3, GL_ARB_texture_float,
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
    GL_ARB_vertex_array_object, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
    GL_ATI_draw_buffers, GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader,
    GL_ATI_meminfo, GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc,
    GL_ATI_texture_env_combine3, GL_ATI_texture_float, GL_EXT_abgr,
    GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate,
    GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
    GL_EXT_compiled_vertex_array, GL_EXT_copy_texture,
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit,
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object,
    GL_EXT_gpu_program_parameters, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
    GL_EXT_point_parameters, GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
    GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
    GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_swizzle,
    GL_EXT_vertex_array, GL_KTX_buffer_region, GL_NV_blend_square,
    GL_NV_texgen_reflection, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_WIN_swap_hint,
    WGL_EXT_swap_control

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x24 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x25 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x26 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x27 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x28 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x29 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2a 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2b 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2c 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2d 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x2e 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x2f 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x30 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x31 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x32 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x33 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x34 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x35 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x36 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x37 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x38 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x39 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x3a 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x3b 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x3c 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x3d 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x3e 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x3f 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x40 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x41 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x42 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x43 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x44 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x45 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x46 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x47 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x48 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x49 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x4a 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x4b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x4c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x4d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x4e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x4f 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x50 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x51 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x52 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x53 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x54 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x55 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x56 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x57 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x58 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x59 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x5a 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x5b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x5c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x5d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x5e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x5f 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x60 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x61 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x62 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x63 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x64 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x65 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x66 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x67 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x68 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x69 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x6a 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x6b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x6c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x6d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x6e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x6f 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x70 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x71 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x72 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x85 32 tc  0 32  0 r  .  .  8  8  8  8  0  0  0  0  0  0  0  4 1 Ncon
david@Miho:/opt/SuperMeatBoy/x86$
Comment 3 dopefish7590 2011-12-13 21:03:45 EST
I can confirm this bug in 64-bit Ubuntu (10.04 with glibc updated to 2.14.1) as well. It insta-segfaults when using the 64 bit version, and a black window appears for a couple seconds before segfaulting when using linux32 to make it think it is 32 bit.

dopefish7590@Angelfire:~/apps/supermeatboy <('.'<)$ ./SuperMeatBoy 
Super Meat Boy: Installed in '.'.
Super Meat Boy: Using amd64 version.
Segmentation fault
dopefish7590@Angelfire:~/apps/supermeatboy ^('.')^$ linux32 !!
linux32 ./SuperMeatBoy 
Super Meat Boy: Installed in '.'.
Super Meat Boy: Using x86 version.
Segmentation fault
dopefish7590@Angelfire:~/apps/supermeatboy (>'.')>$ ./amd64/SuperMeatBoy-amd64 
Segmentation fault
dopefish7590@Angelfire:~/apps/supermeatboy ^('.')^$ ./x86/SuperMeatBoy-x86 
Segmentation fault

And here is some interesting output from strace:
mkdir("", 0700)                         = -1 ENOENT (No such file or directory)
mkdir("/home", 0700)                    = -1 EEXIST (File exists)
mkdir("/home/dopefish7590", 0700)       = -1 EEXIST (File exists)
mkdir("/home/dopefish7590/.local", 0700) = -1 EEXIST (File exists)
mkdir("/home/dopefish7590/.local/share", 0700) = -1 EEXIST (File exists)
mkdir("/home/dopefish7590/.local/share/SuperMeatBoy", 0700) = -1 EEXIST (File exists)
mkdir("/home/dopefish7590/.local/share/SuperMeatBoy/UserData", 0700) = -1 EEXIST (File exists)
mkdir("/home/dopefish7590/.local/share/SuperMeatBoy/UserData/", 0700) = -1 EEXIST (File exists)

Isn't the last one supposed to be a file in the folder?
When I link something else there, 32 bit suddenly starts insta-segfaulting. Since this directly affects the behavior of the bug, I think it may be related.
Comment 4 David 2011-12-14 00:33:45 EST
Created attachment 3032 [details]
strace Debian Lenny

strace Debian Lenny
Comment 5 David 2011-12-14 00:34:58 EST
Created attachment 3033 [details]
strace Debian Lenny

strace Debian Lenny
Comment 6 Fibonacci Prower 2011-12-14 22:16:15 EST
Confirmed on x86 with free (ATi) graphics drivers.
Confirmed NOT HAPPENING (game runs fine) on x86_64 with proprietary nVidia graphics drivers.

Someone also mentioned using Intel graphics and experiencing this bug. Which graphics drivers are you using?
Comment 7 David 2011-12-14 23:40:23 EST
ATI Catalyst 9.3
Comment 8 slayersonlin3 2011-12-15 06:29:06 EST
Created attachment 3041 [details]
ltrace

I think it is more because of this:

open("resources/Shaders/F8F5D6A5.bin", O_RDONLY) = 11
fstat64(11, {st_mode=S_IFREG|0644, st_size=320, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x9e0d0000
read(11, "\0\2\377\377\376\3778\0CTAB\34\0\0\0\253\0\0\0\0\2\377\377\3\0\0\0\34\0\0\0\0"..., 4096) = 320
read(11, ""..., 4096)                   = 0
close(11)                               = 0
munmap(0x9e0d0000, 4096)                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---

Also, attached ltrace
Comment 9 Ryan C. Gordon 2011-12-15 09:51:49 EST
syscall traces aren't generally useful; can someone please give me a stack trace?

Run the game under gdb:

  # Replace "amd64" with "x86" for the 32-bit version...
  cd /where/i/installed/supermeatboy/amd64
  gdb ./SuperMeatBoy-amd64

  # at the gdb prompt, run the game...
  r

  # when it crashes, get the stack trace...
  bt

  # Quit gdb
  q


Cut and paste the output from the "bt" command here.

Thanks!

--ryan.
Comment 10 slayersonlin3 2011-12-15 11:13:33 EST
(gdb) bt
#0  0xb6284710 in ?? ()
#1  0x08193500 in MOJOSHADER_glCompileShader ()
#2  0x081c0aae in CreateOpenGLShader(tagShaderCreation const*) ()
#3  0x082a4923 in Shader::CreateShader(tagShaderCreation*) ()
#4  0x08288f2e in FragmentLinker::GetShader() ()
#5  0x081bffc9 in gfxDraw ()
#6  0x0828ab90 in TGraphics::Draw(VertexStream*, IndexBuffer*) ()
#7  0x082721bf in FlashSymbol::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#8  0x08274f33 in FlashLibraryInstance::TimelineRender(float, float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#9  0x08275339 in FlashTimeline::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#10 0x0827543b in FlashMovieClip::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#11 0x08274f33 in FlashLibraryInstance::TimelineRender(float, float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#12 0x08275339 in FlashTimeline::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#13 0x0827543b in FlashMovieClip::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#14 0x0826f37e in FlashLibraryInstance::Render() ()
#15 0x0810e754 in GSMBMenu::RenderTitleScreenForIntro() ()
#16 0x080b49ff in GMeatHUD::Render() ()
#17 0x0829bfeb in RenderLayers::Render() ()
#18 0x08281b7d in TEngine::Render() ()
#19 0x08281e5b in TEngine::EngineRun() ()
#20 0x08281fd1 in TEngine::Run() ()
#21 0x080a90be in main ()
Comment 11 David 2011-12-15 15:24:11 EST
Mine is pretty much identical, except it's got an extra line at the top.


[Thread 0xa3d3bb70 (LWP 3862) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb740f6d0 (LWP 3824)]
0x000010d1 in ?? ()
(gdb) bt
#0  0x000010d1 in ?? ()
#1  0x08191808 in impl_GLSL_CompileShader ()
#2  0x08193500 in MOJOSHADER_glCompileShader ()
#3  0x081c0aae in CreateOpenGLShader ()
#4  0x082a4923 in Shader::CreateShader ()
#5  0x08288f2e in FragmentLinker::GetShader ()
#6  0x081bffc9 in gfxDraw ()
#7  0x0828ab90 in TGraphics::Draw ()
#8  0x082721bf in FlashSymbol::Render ()
#9  0x08274f33 in FlashLibraryInstance::TimelineRender ()
#10 0x08275339 in FlashTimeline::Render ()
#11 0x0827543b in FlashMovieClip::Render ()
#12 0x08274f33 in FlashLibraryInstance::TimelineRender ()
#13 0x08275339 in FlashTimeline::Render ()
#14 0x0827543b in FlashMovieClip::Render ()
#15 0x0826f37e in FlashLibraryInstance::Render ()
#16 0x0810e754 in GSMBMenu::RenderTitleScreenForIntro ()
#17 0x080b49ff in GMeatHUD::Render ()
#18 0x0829bfeb in RenderLayers::Render ()
#19 0x08281b7d in TEngine::Render ()
#20 0x08281e5b in TEngine::EngineRun ()
#21 0x08281fd1 in TEngine::Run ()
#22 0x080a90be in main ()
(gdb)
Comment 12 Fibonacci Prower 2011-12-15 15:39:09 EST
I'm attaching four files: an strace and an ltrace, in a system in which the game runs (64-bit, nVidia drivers) and a system in which it doesn't (32-bit, free ATi drivers).
The ltraces had to be gzipped because they were too big.
Comment 13 Fibonacci Prower 2011-12-15 15:47:11 EST
Created attachment 3044 [details]
non-working strace

strace on a system in which SMB segfaults.
Comment 14 Fibonacci Prower 2011-12-15 15:48:12 EST
Created attachment 3045 [details]
working strace

strace on a system in which SMB runs fine.
Comment 15 Fibonacci Prower 2011-12-15 16:06:04 EST
And the ltraces were too big even after gzipping, so I cannot show them here.
Comment 16 Fibonacci Prower 2011-12-15 16:31:22 EST
Stack trace:

Starting program: /usr/local/games/supermeatboy/x86/SuperMeatBoy-x86 
[Thread debugging using libthread_db enabled]
[New Thread 0xa3e24b70 (LWP 2116)]
[New Thread 0xa3623b70 (LWP 2117)]
[New Thread 0xa1695b70 (LWP 2120)]
[New Thread 0xa0e94b70 (LWP 2121)]
[New Thread 0x9d1ddb70 (LWP 2122)]
[New Thread 0x9c9dcb70 (LWP 2123)]
[New Thread 0x9b9d9b70 (LWP 2124)]
[Thread 0xa0e94b70 (LWP 2121) exited]

Program received signal SIGSEGV, Segmentation fault.
0x0054a730 in ?? () from /usr/lib/libasound.so.2
#0  0x0054a730 in ?? () from /usr/lib/libasound.so.2
#1  0x08193500 in MOJOSHADER_glCompileShader ()
#2  0x081c0aae in CreateOpenGLShader(tagShaderCreation const*) ()
#3  0x082a4923 in Shader::CreateShader(tagShaderCreation*) ()
#4  0x08288f2e in FragmentLinker::GetShader() ()
#5  0x081bffc9 in gfxDraw ()
#6  0x0828ab90 in TGraphics::Draw(VertexStream*, IndexBuffer*) ()
#7  0x082721bf in FlashSymbol::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#8  0x08274f33 in FlashLibraryInstance::TimelineRender(float, float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#9  0x08275339 in FlashTimeline::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#10 0x0827543b in FlashMovieClip::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#11 0x08274f33 in FlashLibraryInstance::TimelineRender(float, float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#12 0x08275339 in FlashTimeline::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#13 0x0827543b in FlashMovieClip::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#14 0x0826f37e in FlashLibraryInstance::Render() ()
#15 0x0810e754 in GSMBMenu::RenderTitleScreenForIntro() ()
#16 0x080b49ff in GMeatHUD::Render() ()
#17 0x0829bfeb in RenderLayers::Render() ()
#18 0x08281b7d in TEngine::Render() ()
#19 0x08281e5b in TEngine::EngineRun() ()
#20 0x08281fd1 in TEngine::Run() ()
#21 0x080a90be in main ()
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x0054a730 in ?? () from /usr/lib/libasound.so.2
Comment 17 Ryan C. Gordon 2011-12-16 00:30:46 EST
(In reply to comment #15)
> And the ltraces were too big even after gzipping, so I cannot show them here.

Again, these aren't usually helpful anyhow.

--ryan.
Comment 18 Ryan C. Gordon 2011-12-16 00:37:57 EST
So the consensus seems to be that this is crashing in the GLSL compiler. I suppose we could try kicking the game over to ARB programs instead of GLSL shaders and see if it helps.

--ryan.
Comment 19 imamdxl8805 2011-12-19 09:11:50 EST
This does not happened with 64bit of Linux and Mesa driver.

Tested on:

Ubuntu 11.10
Linux 3.1.5-030105-generic
Mesa 7.11.2

Mesa compiled by myself by -m64 option. So I dont know why 32bit get segfault while 64 bit not.

Tested on Intel GMA 4500.

The game runs fine with this graphics card and 64bit Linux and Mesa.

Thank you
Comment 20 imamdxl8805 2011-12-19 09:13:04 EST
This does not happened with 64bit of Linux and Mesa driver.

Tested on:

Ubuntu 11.10
Linux 3.1.5-030105-generic
Mesa 7.11.2

Mesa compiled by myself by -m64 option. So I dont know why 32bit get segfault while 64 bit not.

Tested on Intel GMA 4500.

The game runs fine with this graphics card and 64bit Linux and Mesa.

Thank you
Comment 21 David 2011-12-19 15:45:26 EST
Google search suggests that compiling mesa for 64-bit also disables the x86 assembly optimizations because some newer 64-bit CPUs no longer support the older assembly optimizations (3DNOW, MMX,etc.).. Not sure if that's still true in the latest builds of mesa, but that would explain it..

Also, as I noted in the other thread. If the user is missing hardware/driver support for the OpenGL extension in question.... It looks like Mesa is returning a non-null pointer to garbage if it was compiled with ASM optimizations, while with ASM optimizations when MESA was compiled, Mesa returns a null pointer.. 

 The game is trying to use the extension whenever the pointer is not null, hence the crash.  Mesa team says the game must always check for support of the OpenGL extension and not rely on returned pointers being NULL as a non-null pointer does not indicate hardware/driver support for the OpenGL extension.

It looks like MESA added support for GL_ARB_transform_feedback2 back in 2010... So if your graphics driver is older than 18 months *AND* you are running a 32-bit OS where your distro compiled Mesa with assembly optimizations, you will get a segfault in this game (and also Shank) until the games get patched.
Comment 22 Anon 2011-12-19 20:51:25 EST
The problem is that Mojoshader looks for the function called "glCreateShaderObject" which doesn't exist in OpenGL - it should be "glCreateShaderObjectARB", but it relies on the fact that glXGetProcAddress will return NULL when called with "glCreateShaderObject" so that it can append "ARB" and try again.

Mesa for some reason decides to return a non-null pointer for "glCreateShaderObject" even though it does not have this function, and segfaults.

As David said, the Mesa team say not to rely on returned pointers being NULL as an indication that the driver supports the OpenGL extension so I am not sure if this is a Mesa bug or a Mojoshader one.
Comment 23 Laurent Carlier 2011-12-20 05:28:47 EST
Same bugs

*** This bug has been marked as a duplicate of bug 5315 ***