Hi everyone,
I've the same problem here. I've one server running correctly on one machine and not on another. It's probably due to a different library version but I don't know how to find it.
Here's an strace of the crash:
---------------------------------------------------------
open("/home/qwtest/etqw/base/pak003.pk4", O_RDONLY) = 16
_llseek(9, 74928128, [74928128], SEEK_SET) = 0
read(9, "\0#\207\0257\20\322\363\341%\1\0\0\364\2\0\0\35\0\ 0\0\0"..., 4096) = 4096
read(9, "\30\373\1\0\0\330\4\0\0\"\0\0\0\0\0\0\0\0\0 \0\0\0\204"..., 4096) = 4096
fstat64(16, {st_mode=S_IFREG|S_ISGID|S_ISVTX|0745, st_size=75103514, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x41be2000
_llseek(16, 71053312, [71053312], SEEK_SET) = 0
read(16, ":^T\25\366i\303\254\211[\375\2127^l:\273%gi\277$\277\327"..., 2436) = 2436
read(16, "PK\3\4\24\0\0\0\10\0#\207\0257\272\306\244\30\373\ 1\0\0"..., 4096) = 4096
_llseek(16, 74928128, [74928128], SEEK_SET) = 0
read(16, "\0#\207\0257\20\322\363\341%\1\0\0\364\2\0\0\35\0\ 0\0\0"..., 4096) = 4096
read(16, "\30\373\1\0\0\330\4\0\0\"\0\0\0\0\0\0\0\0\0 \0\0\0\204"..., 4096) = 4096
_llseek(16, 71053312, [71053312], SEEK_SET) = 0
read(16, ":^T\25\366i\303\254\211[\375\2127^l:\273%gi\277$\277\327"..., 4096) = 4096
_llseek(16, 71057408, [71057408], SEEK_SET) = 0
close(16) = 0
munmap(0x41be2000, 4096) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
write(1, "signal caught: \'Segmentation fau"..., 49) = 49
write(1, "callstack:\n0x411ed9d0\n[0x082cab6"..., 204) = 204
write(1, "Trying to exit gracefully..\n", 28) = 28
write(1, "------------ Game Shutdown -----"..., 39) = 39
write(1, "--------- Game Map Shutdown ----"..., 39) = 39
brk(0) = 0x9692000
brk(0x9697000) = 0x9697000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
write(1, "double fault: \'Segmentation faul"..., 48) = 48
unlink("/home/qwtest/.etqw//etqw.pid") = 0
rt_sigaction(SIGHUP, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGILL, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGABRT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGBUS, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGFPE, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGABRT, {SIG_DFL}, NULL, 8) = 0
munmap(0x40f9d000, 512000) = 0
munmap(0x40864000, 3403776) = 0
close(15) = 0
munmap(0x407f3000, 266240) = 0
munmap(0x40e39000, 266240) = 0
munmap(0x40dd9000, 266240) = 0
munmap(0x40e7a000, 266240) = 0
munmap(0x40d6a000, 266240) = 0
close(13) = 0
munmap(0x4068f000, 135168) = 0
munmap(0x4064e000, 135168) = 0
munmap(0x405ec000, 266240) = 0
munmap(0x404eb000, 1052672) = 0
munmap(0x402e2000, 266240) = 0
munmap(0x4032a000, 266240) = 0
munmap(0x4039d000, 266240) = 0
munmap(0x403de000, 266240) = 0
munmap(0x40ba3000, 266240) = 0
munmap(0x40be4000, 266240) = 0
munmap(0x40c25000, 266240) = 0
munmap(0x40c66000, 266240) = 0
munmap(0x40ca7000, 266240) = 0
munmap(0x40ce8000, 266240) = 0
munmap(0x40d29000, 266240) = 0
munmap(0x40420000, 266240) = 0
munmap(0x40461000, 266240) = 0
munmap(0x41be3000, 266240) = 0
munmap(0x41c24000, 266240) = 0
write(12, "`\360\5@\7\0\0\0\360\235\5@\354\332\377\277\224\33 2\377"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
rt_sigsuspend([] <unfinished ...>
--- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
<... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call)
sigreturn() = ? (mask now [RTMIN])
write(12, "`\360\5@\2\0\0\0\v\0\0\0M\371\32@\200M\1@\254e\32@ d\333"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
rt_sigsuspend([] <unfinished ...>
--- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
<... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call)
sigreturn() = ? (mask now [RTMIN])
wait4(708, NULL, __WCLONE, NULL) = 708
munmap(0x40323000, 4096) = 0
exit_group(11) = ?
---------------------------------------------------------
and another running fine on another machine at the same strace position:
---------------------------------------------------------
open("/home/ekeepwn/etqw/base/pak003.pk4", O_RDONLY) = 20
_llseek(9, 75001856, [75001856], SEEK_SET) = 0
read(9, "\0\0\321hj\4generated/declb/materials/"..., 4096) = 4096
fstat64(20, {st_mode=S_IFREG|S_ISGID|S_ISVTX|0745, st_size=75103514, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb46db000
_llseek(20, 74084352, [74084352], SEEK_SET) = 0
read(20, "wql\10y\200\366\231\303<\301\7F\2231\277\277\216\2516\343"..., 1459) = 1459
read(20, "PK\3\4\24\0\0\0\10\0#\207\0257\330\230{\370\250\3\ 0\000"..., 4096) = 4096
_llseek(20, 75001856, [75001856], SEEK_SET) = 0
read(20, "\0\0\321hj\4generated/declb/materials/"..., 4096) = 4096
_llseek(20, 74084352, [74084352], SEEK_SET) = 0
read(20, "wql\10y\200\366\231\303<\301\7F\2231\277\277\216\2516\343"..., 4096) = 4096
_llseek(20, 74088448, [74088448], SEEK_SET) = 0
close(20) = 0
munmap(0xb46db000, 4096) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb469b000
munmap(0xb469b000, 266240) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb469b000
munmap(0xb469b000, 266240) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb469b000
munmap(0xb469b000, 266240) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb469b000
munmap(0xb469b000, 266240) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb469b000
munmap(0xb469b000, 266240) = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb469b000
munmap(0xb469b000, 266240) = 0
...
---------------------------------------------------------
I've noticed that one server is using old_mmap and the other mmap2 but I don't know what it means.
Anyone have an idea?
Cyrille