Re: linux 3d applications keep crashing

From: Boris Samorodov <bsam_at_ipt.ru>
Date: Sat, 14 Mar 2009 11:37:13 +0300
On Sat, 14 Mar 2009 00:03:25 +0100 (CET) Alexander Best wrote:

> hi there,

> a lot of people who are using the nvidia closed source driver are having
> problems running linux 3d applications. the libGL.so.1 library (linux version
> in /compat/linux/usr/lib) causes almost every linux 3d app to segfault. since
> the library is the very same one that get's installed under linux the problem
> very likely resides in the linuxulator.

> i ran two linux games with ktrace. this is the output from linux_kdump. i hope
> i copy&pasted the important pieces of the dump that report the crash.

> dump from unreal tournament 2004 demo:

> ...
>   1180 ut2004-bin RET   close 0
>   1180 ut2004-bin CALL  linux_brk(0xae5c000)
>   1180 ut2004-bin RET   linux_brk 182829056/0xae5c000
>   1180 ut2004-bin CALL  linux_getpid
>   1180 ut2004-bin RET   linux_getpid 1180/0x49c
>   1180 ut2004-bin CALL  linux_getpid
>   1180 ut2004-bin RET   linux_getpid 1180/0x49c
>   1180 ut2004-bin CALL  linux_getpid
>   1180 ut2004-bin RET   linux_getpid 1180/0x49c
>   1180 ut2004-bin CALL
>   linux_sys_futex(0x2b406e30,0x81,0x7fffffff,0,0x49c,0x7)
>   1180 ut2004-bin RET   linux_sys_futex 1
>   1180 ut2004-bin PSIG  SIGSEGV caught handler=0x874bd50 mask=0x0 code=0x0
>   1180 ut2004-bin CALL  linux_fstat64(0x1,0xbfbfa9e8,0x28fe8ff4)
>   1180 ut2004-bin UNKNOWN(8)    1180 ut2004-bin RET   linux_fstat64 0
>   1180 ut2004-bin CALL  linux_mmap2(0,0x1000,0x3,0x22,0xffffffff,0)
>   1180 ut2004-bin RET   linux_mmap2 688971776/0x2910e000
>   1180 ut2004-bin CALL  write(0x1,0x2910e000,0x25)
>   1180 ut2004-bin GIO   fd 1 wrote 37 bytes
>        "Signal: SIGSEGV [segmentation fault]
>        "
>   1180 ut2004-bin RET   write 37/0x25
>   1180 ut2004-bin CALL  write(0x1,0x2910e000,0xa)
>   1180 ut2004-bin GIO   fd 1 wrote 10 bytes
>        "Aborting.
>        "
>   1180 ut2004-bin RET   write 10/0xa
>   1180 ut2004-bin CALL  write(0x1,0x2910e000,0x1)
>   1180 ut2004-bin GIO   fd 1 wrote 1 byte
>        "
>        "
>   1180 ut2004-bin RET   write 1
>   1180 ut2004-bin CALL  write(0x1,0x2910e000,0x1)
>   1180 ut2004-bin GIO   fd 1 wrote 1 byte
>        "
>        "
>   1180 ut2004-bin RET   write 1
>   1180 ut2004-bin CALL  write(0x1,0x2910e000,0x31)
>   1180 ut2004-bin GIO   fd 1 wrote 49 bytes
>        "Crash information will be saved to your logfile.
>        "
>   1180 ut2004-bin RET   write 49/0x31
>   1180 ut2004-bin CALL
>   linux_sys_futex(0x28feba34,0x81,0x7fffffff,0,0xbfbfab14,0xbfbfaaec)
>   1180 ut2004-bin RET   linux_sys_futex 1
>   1180 ut2004-bin CALL
>   linux_sys_futex(0x28e8eb48,0x81,0x7fffffff,0,0xbfbfaa30,0xbfbfa93c)
>   1180 ut2004-bin RET   linux_sys_futex 1
>   1180 ut2004-bin CALL  write(0x4,0x937c3c8,0xc)
> ...

> and dump from quake 4 demo:

> ...
>   1285 quake4.x86 RET   close 0
>   1285 quake4.x86 CALL  linux_getpid
>   1285 quake4.x86 RET   linux_getpid 1285/0x505
>   1285 quake4.x86 CALL  linux_getpid
>   1285 quake4.x86 RET   linux_getpid 1285/0x505
>   1285 quake4.x86 CALL  linux_getpid
>   1285 quake4.x86 RET   linux_getpid 1285/0x505
>   1285 quake4.x86 CALL
>   linux_sys_futex(0x2dbece30,0x81,0x7fffffff,0,0x505,0x7)
>   1285 quake4.x86 RET   linux_sys_futex 1
>   1285 quake4.x86 PSIG  SIGSEGV caught handler=0x8254b10 mask=0x0 code=0x0
>   1285 quake4.x86 CALL
>   linux_sys_futex(0x286cd620,0x81,0x7fffffff,0,0x505,0xbfbfc51c)
>   1285 quake4.x86 RET   linux_sys_futex 1
>   1285 quake4.x86 CALL  write(0x1,0x283dd000,0x22)
>   1285 quake4.x86 GIO   fd 1 wrote 34 bytes
>        "signal caught: Segmentation fault
>        "
>   1285 quake4.x86 RET   write 34/0x22
>   1285 quake4.x86 CALL  write(0x1,0x283dd000,0xa)
>   1285 quake4.x86 GIO   fd 1 wrote 10 bytes
>        "si_code 1
>        "
>   1285 quake4.x86 RET   write 10/0xa
>   1285 quake4.x86 CALL  write(0x1,0x283dd000,0x1c)
>   1285 quake4.x86 GIO   fd 1 wrote 28 bytes
>        "Trying to exit gracefully..
>        "
>   1285 quake4.x86 RET   write 28/0x1c
>   1285 quake4.x86 CALL  write(0x1,0x283dd000,0x2e)
>   1285 quake4.x86 GIO   fd 1 wrote 46 bytes
>        "--------------- BSE Shutdown ----------------
>        "
>   1285 quake4.x86 RET   write 46/0x2e
>   1285 quake4.x86 CALL  write(0x1,0x283dd000,0x2e)
>   1285 quake4.x86 GIO   fd 1 wrote 46 bytes
>        "---------------------------------------------
>        "
>   1285 quake4.x86 RET   write 46/0x2e
>   1285 quake4.x86 CALL  write(0x1,0x283dd000,0x35)
>   1285 quake4.x86 GIO   fd 1 wrote 53 bytes
>        "WARNING: rvServerScanGUI::Clear() - invalid scanGUI

>        "
>   1285 quake4.x86 RET   write 53/0x35
>   1285 quake4.x86 CALL  munmap(0x2d0ee000,0x101000)
>   1285 quake4.x86 RET   munmap 0
>   1285 quake4.x86 CALL  munmap(0x2d1ef000,0x101000)
> ...

> to me it looks like the app crashes during the futex syscall, but i'm far from
> beeing an expert.

> it would be great if somebody could take a closer look at this.

For those who might wish to dig into the problem following information
from you host may be helpful:
-----
% uname -a     
% sysctl compat.linux
% pkg_info -xI linux
-----


WBR
-- 
Boris Samorodov (bsam)
Research Engineer, http://www.ipt.ru Telephone & Internet SP
FreeBSD Committer, http://www.FreeBSD.org The Power To Serve
Received on Sat Mar 14 2009 - 07:37:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:44 UTC