| Summary: | warzone2100 Segmentation fault with prelink | ||
|---|---|---|---|
| Product: | Mageia | Reporter: | gil gil <puntogil> |
| Component: | RPM Packages | Assignee: | Mageia Bug Squad <bugsquad> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Normal | CC: | anssi.hannula, thierry.vignaud, tmb |
| Version: | Cauldron | Keywords: | Triaged |
| Target Milestone: | --- | ||
| Hardware: | i586 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Source RPM: | warzone2100-2.3.9-1.mga2 | CVE: | |
| Status comment: | |||
|
Description
gil gil
2012-01-04 08:54:54 CET
Hi, thanks for reporting this bug. Assigned to the package maintainer. (Please set the status to 'assigned' if you are working on it) Keywords:
(none) =>
Triaged please try with warzone2100-2.3.9-2.mga2 Status:
NEW =>
ASSIGNED hi with warzone2100-2.3.9-2.mga2 gdb `which warzone2100` GNU gdb (GDB) 7.3.50.20110722-4.mga2 (Mageia release 2) Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i586-mageia-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/games/warzone2100...Reading symbols from /usr/lib/debug/usr/games/warzone2100.debug...done. done. (gdb) run Starting program: /usr/games/warzone2100 Program received signal SIGSEGV, Segmentation fault. 0x4abf8c6c in _dl_relocate_object () from /lib/ld-linux.so.2 (gdb) bt #0 0x4abf8c6c in _dl_relocate_object () from /lib/ld-linux.so.2 #1 0x4abf11eb in dl_main () from /lib/ld-linux.so.2 #2 0x4ac014f2 in _dl_sysdep_start () from /lib/ld-linux.so.2 #3 0x4abf2a96 in _dl_start () from /lib/ld-linux.so.2 #4 0x4abef287 in _start () from /lib/ld-linux.so.2 Backtrace stopped: Not enough registers or memory available to unwind further I cannot reproduce here. When does the game crash? at startup? yes Well, I even played all first level to see if it crashes, and nothing happened. Maybe you can install more debug packages to get a full backtrace? hi sudo urpmi warzone2100-debug ... The package warzone2100-debug-2.3.9-2.mga2.i586 is already installed .... gdb `which warzone2100` GNU gdb (GDB) 7.3.50.20110722-4.mga2 (Mageia release 2) Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i586-mageia-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/games/warzone2100...Reading symbols from /usr/lib/debug/usr/games/warzone2100.debug...done. done. (gdb) run Starting program: /usr/games/warzone2100 Program received signal SIGSEGV, Segmentation fault. 0x4abf8c6c in _dl_relocate_object () from /lib/ld-linux.so.2 (gdb) bt #0 0x4abf8c6c in _dl_relocate_object () from /lib/ld-linux.so.2 #1 0x4abf11eb in dl_main () from /lib/ld-linux.so.2 #2 0x4ac014f2 in _dl_sysdep_start () from /lib/ld-linux.so.2 #3 0x4abf2a96 in _dl_start () from /lib/ld-linux.so.2 #4 0x4abef287 in _start () from /lib/ld-linux.so.2 Backtrace stopped: Not enough registers or memory available to unwind further i tried to rebult it with (lib)glee support but nothing has changed ... tks http://svnweb.mageia.org/packages/cauldron/glee (In reply to comment #7) > The package warzone2100-debug-2.3.9-2.mga2.i586 is already installed Yes, I meant installing the debug packages for the list given by 'ldd /usr/games/warzone2100' ldd /usr/games/warzone2100
linux-gate.so.1 => (0xffffe000)
libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x4c1a1000)
libphysfs.so.1 => /usr/lib/libphysfs.so.1 (0x4af33000)
libpng15.so.15 => /usr/lib/libpng15.so.15 (0x4b3f9000)
libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x41000000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x410eb000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x4ff7b000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0x41095000)
libopenal.so.1 => /usr/lib/libopenal.so.1 (0x4b59b000)
libGLC.so.0 => /usr/lib/libGLC.so.0 (0x4e08a000)
libGL.so.1 => /usr/lib/nvidia-current/libGL.so.1 (0xb7676000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb7602000)
libpopt.so.0 => /lib/libpopt.so.0 (0x4b65f000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x4b0cc000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x4ae23000)
libm.so.6 => /lib/i686/libm.so.6 (0x4adab000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4ae04000)
libc.so.6 => /lib/i686/libc.so.6 (0x4ac0f000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4ad8f000)
libdirectfb-1.5.so.0 => /usr/lib/libdirectfb-1.5.so.0 (0x4b939000)
libggi.so.2 => /usr/lib/libggi.so.2 (0x4c101000)
libaa.so.1 => /usr/lib/libaa.so.1 (0x4beb7000)
libdl.so.2 => /lib/libdl.so.2 (0x4add8000)
libz.so.1 => /lib/libz.so.1 (0x4adea000)
librt.so.1 => /lib/i686/librt.so.1 (0x4addf000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x4b44a000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x4b36d000)
libfribidi.so.0 => /usr/lib/libfribidi.so.0 (0x4b71f000)
/lib/ld-linux.so.2 (0x4abee000)
libnvidia-tls.so.290.10 => /usr/lib/nvidia-current/tls/libnvidia-tls.so.290.10 (0x4fdaf000)
libnvidia-glcore.so.290.10 => /usr/lib/nvidia-current/libnvidia-glcore.so.290.10 (0xb57c3000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x4b358000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x4b0aa000)
libfusion-1.5.so.0 => /usr/lib/libfusion-1.5.so.0 (0x4b92a000)
libdirect-1.5.so.0 => /usr/lib/libdirect-1.5.so.0 (0x4b906000)
libncurses.so.5 => /lib/libncurses.so.5 (0x4bf06000)
libgii.so.1 => /usr/lib/libgii.so.1 (0x4bee0000)
libXxf86dga.so.1 => /usr/lib/libXxf86dga.so.1 (0x4be9f000)
libgg.so.1 => /usr/lib/libgg.so.1 (0x4bea8000)
libslang.so.2 => /usr/lib/libslang.so.2 (0x4bd71000)
libgpm.so.2 => /lib/libgpm.so.2 (0x4bed7000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x4b209000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x4b09b000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x4b0a1000)
sudo urpmi physfs-debug libpng-debug libvorbis-debug libtheora-debug SDL12-debug quesoglc-debug popt-debug openal-debug libogg-debug mesa-debug libx11-debug mesa-debug directfb-debug libxml2-debug libxdmcp-debug libxau-debug gpm-debug slang-debug libgii-debug libxxf86dga-debug ncurses-debug libxcb-debug libxext-debug fribidi-debug libggi-debug freetype2-debug fontconfig-debug zlib-debug aalib-debug gdb `which warzone2100` GNU gdb (GDB) 7.3.50.20110722-4.mga2 (Mageia release 2) Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i586-mageia-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/games/warzone2100...Reading symbols from /usr/lib/debug/usr/games/warzone2100.debug...done. done. (gdb) run Starting program: /usr/games/warzone2100 Program received signal SIGSEGV, Segmentation fault. 0x4abf8c6c in _dl_relocate_object () from /lib/ld-linux.so.2 (gdb) bt #0 0x4abf8c6c in _dl_relocate_object () from /lib/ld-linux.so.2 #1 0x4abf11eb in dl_main () from /lib/ld-linux.so.2 #2 0x4ac014f2 in _dl_sysdep_start () from /lib/ld-linux.so.2 #3 0x4abf2a96 in _dl_start () from /lib/ld-linux.so.2 #4 0x4abef287 in _start () from /lib/ld-linux.so.2 Backtrace stopped: Not enough registers or memory available to unwind further sudo urpmi glibc-debug gdb `which warzone2100` GNU gdb (GDB) 7.3.50.20110722-4.mga2 (Mageia release 2) Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i586-mageia-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/games/warzone2100...Reading symbols from /usr/lib/debug/usr/games/warzone2100.debug...done. done. (gdb) run Starting program: /usr/games/warzone2100 Program received signal SIGSEGV, Segmentation fault. elf_dynamic_do_rela (relsize=<optimized out>, reladdr=3085427440, map=0xb7e7e2f0, lazy=<optimized out>) at do-rel.h:105 105 DO_ELF_MACHINE_REL_RELATIVE (map, l_addr, relative); (gdb) bt #0 elf_dynamic_do_rela (relsize=<optimized out>, reladdr=3085427440, map=0xb7e7e2f0, lazy=<optimized out>) at do-rel.h:105 #1 _dl_relocate_object (scope=0xb7e7e4a8, reloc_mode=1, consider_profiling=0) at dl-reloc.c:264 #2 0x4abf11eb in dl_main (phdr=0x8048034, phnum=9, user_entry=0xbfffed94, auxv=0xbfffef58) at rtld.c:2277 #3 0x4ac014f2 in _dl_sysdep_start (start_argptr=0xbfffedf0, dl_main=0x4abf0020 <dl_main>) at ../elf/dl-sysdep.c:244 #4 0x4abf2a96 in _dl_start_final (arg=0xbfffedf0) at rtld.c:344 #5 _dl_start (arg=0xbfffedf0) at rtld.c:570 #6 0x4abef287 in _start () from /lib/ld-linux.so.2 Backtrace stopped: Not enough registers or memory available to unwind further (gdb) I'm also unable to reproduce. Can you do: ldd /usr/games/warzone2100 | sed -rn 's,^[^/]*(/[^ ]+) .*$,\1,p' | xargs rpm -qf | sort -u and ldd /usr/games/warzone2100 | sed -rn 's,^[^/]*(/[^ ]+) .*$,\1,p' | xargs rpm -Vf | sort -u CC:
(none) =>
anssi.hannula ldd /usr/games/warzone2100 | sed -rn 's,^[^/]*(/[^ ]+) .*$,\1,p' | xargs rpm -qf | sort -u glibc-2.14.1-4.mga2 libaa1-1.4.0-0.rc5.23.mga2 libdirectfb1.5_0-1.5.3-3.mga2 libfontconfig1-2.8.0-6.mga2 libfreetype6-2.4.8-2.mga2 libfribidi0-0.19.2-5.mga2 libgcc1-4.6.2-1.mga2 libggi2-2.2.2-18.mga2 libgii1-1.0.2-16.mga2 libgpm2-1.20.6-5.mga1 libmesaglu1-7.11.2-5.mga2 libncurses5-5.9-2.mga2 libogg0-1.3.0-1.mga2 libopenal1-1.13-1.mga2 libphysfs2-2.0.2-1.mga2 libpng15_15-1.5.7-1.mga2 libpopt0-1.16-1.mga1 libquesoglc0-0.7.2-2.mga2 libSDL1.2_0-1.2.14-7.mga2 libslang2-2.2.4-3.mga2 libstdc++6-4.6.2-1.mga2 libtheora0-1.1.1-3.mga2 libvorbis0-1.3.2-1.mga2 libvorbisfile3-1.3.2-1.mga2 libx11_6-1.4.4-2.mga2 libxau6-1.0.6-2.mga2 libxcb1-1.7-3.mga2 libxdmcp6-1.1.0-1.mga1 libxext6-1.3.0-2.mga2 libxml2_2-2.7.8-12.mga2 libxxf86dga1-1.1.2-2.mga2 libzlib1-1.2.5-5.mga2 x11-driver-video-nvidia-current-290.10-1.mga2.nonfree ldd /usr/games/warzone2100 | sed -rn 's,^[^/]*(/[^ ]+) .*$,\1,p' | xargs rpm -Vf | sort -u prelink: /usr/lib/libGLC.so.0.0.7: at least one of file's dependencies has changed since prelinking prelink: /usr/lib/nvidia-current/libnvidia-glcore.so.290.10: prelinked file was modified prelink: /usr/lib/nvidia-current/libnvidia-glcore.so.290.10: prelinked file was modified prelink: /usr/lib/nvidia-current/libnvidia-glcore.so.290.10: prelinked file was modified ?S....... /usr/lib/libGLC.so.0.0.7 ?S....... /usr/lib/nvidia-current/libnvidia-glcore.so.290.10 ?........ /usr/sbin/glibc-post-wrapper We debugged the issue further in IRC, and it seems that the "prelinked file was modified" warning above is indeed the issue, because replacing those two (actually, either of them) files with the vanilla files fixes the segfault. The non-working library files are available at http://onse.fi/files/gil-prelink-libraries.tar.gz (i586) Adding some prelink/glibc people in CC. Thierry, Thomas, do you have any idea how this could happen, or how it should be solved properly? CC:
(none) =>
thierry.vignaud, tmb It usually happen when introducing a new glibc that hasn't been tested much with prelink. Is it fixed when using "prelink -u"? It is indeed fixed by: # prelink -u /usr/lib/libGLC.so.0.0.7 /usr/lib/nvidia-current/libnvidia-glcore.so.290.10 However, it is also fixed by just: # prelink /usr/lib/libGLC.so.0.0.7 /usr/lib/nvidia-current/libnvidia-glcore.so.290.10 Which suggests that something else is going on, which broke it in the first place... So it is a nvidia related bug, I cannot do anything in warzone. Status:
ASSIGNED =>
NEW prelink pbs sorry & tks Status:
NEW =>
RESOLVED |