Game Development Community

Segfault on dedicated with HEAD release

by Dreamer · in Torque Game Engine · 06/19/2004 (10:49 pm) · 3 replies

I've just noticed something odd with todays HEAD.
making a RELEASE with "make dedicated", causes a segfault when the app is launched.

However making DEBUG with "make dedicated", runs like a champ.

Build environment is

SuSE 9.0 with latest updates
AMD Athlon XP 2200+
ATI Radeon 9000 w/256MB DDR SDRAM (not that it should matter)
1GB 400/DDR/SDRAM

This is from a completely clean CVS HEAD follwing the directions to the letter. However since this is only for a server, I only built with dedicated.

Any ideas as to what may be the issue here?

#1
06/19/2004 (11:21 pm)
Here is the results of an strace, if anyone sees anything helpful, I am posting this in 2 parts due to the fact that there is a max posting length...

steve@linux:~/projects/torque/example> strace ./torqueDemod.bin -dedicated > out.txt
execve("./torqueDemod.bin", ["./torqueDemod.bin", "-dedicated"], [/* 74 vars */]) = 0
uname({sys="Linux", node="linux", ...}) = 0
brk(0) = 0x846b000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=78684, ...}) = 0
old_mmap(NULL, 78684, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3) = 0
open("/usr/lib/libogg.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\24\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=21116, ...}) = 0
old_mmap(NULL, 20208, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002c000
madvise(0x4002c000, 20208, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x40030000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3000) = 0x40030000
close(3) = 0
open("/usr/lib/libvorbis.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200,\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=174422, ...}) = 0
old_mmap(NULL, 162800, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40031000
madvise(0x40031000, 162800, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x4004a000, 61440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x19000) = 0x4004a000
close(3) = 0
open("/lib/tls/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360I\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=88272, ...}) = 0
old_mmap(NULL, 65004, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40059000
madvise(0x40059000, 65004, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x40066000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x40066000
old_mmap(0x40067000, 7660, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40067000
close(3) = 0
open("/usr/lib/libstdc++.so.5", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\247"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=965717, ...}) = 0
old_mmap(NULL, 766620, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40069000
madvise(0x40069000, 766620, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x4010a000, 90112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa0000) = 0x4010a000
old_mmap(0x40120000, 17052, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40120000
close(3) = 0
open("/lib/tls/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p5\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=170563, ...}) = 0
old_mmap(NULL, 137712, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40125000
madvise(0x40125000, 137712, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x40146000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x40146000
close(3) = 0
#2
06/19/2004 (11:22 pm)
Open("/lib/libgcc_s.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\25\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=40171, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40147000
old_mmap(NULL, 30456, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40148000
madvise(0x40148000, 30456, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x4014f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7000) = 0x4014f000
close(3) = 0
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240U\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1348627, ...}) = 0
old_mmap(NULL, 1132940, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40150000
madvise(0x40150000, 1132940, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x4025a000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x10a000) = 0x4025a000
old_mmap(0x40262000, 10636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40262000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40265000
set_thread_area({entry_number:-1 -> 6, base_addr:0x40265080, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x40018000, 78684) = 0
set_tid_address(0x402650c8) = 11350
rt_sigaction(SIGRTMIN, {0x4005d950, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbfffef28, 31, (nil), 0}) = 0
brk(0) = 0x846b000
brk(0x848c000) = 0x848c000
brk(0) = 0x848c000
uname({sys="Linux", node="linux", ...}) = 0
mmap2(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40266000
gettimeofday({1087715923, 220653}, NULL) = 0
gettimeofday({1087715923, 220896}, NULL) = 0
rt_sigaction(SIGTTIN, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTOU, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGSEGV, {0x83016c0, [SEGV], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTRAP, {0x83016c0, [TRAP], SA_RESTART}, {SIG_DFL}, 8) = 0
mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40a67000
mprotect(0x40a67000, 4096, PROT_NONE) = 0
clone(child_stack=0x40c67b08, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x40c67bf8, {entry_number:6, base_addr:0x40c67bb0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x40c67bf8) = 11351
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigaction(SIGSEGV, {SIG_DFL}, {0x83016c0, [SEGV], SA_RESTART}, 8) = 0
rt_sigaction(SIGTRAP, {SIG_DFL}, {0x83016c0, [TRAP], SA_RESTART}, 8) = 0
kill(11350, SIGSEGV) = 0
+++ killed by SIGSEGV +++
#3
06/20/2004 (8:25 am)
Well I have HEAD of 2004-06-19 which is yesterday's HEAD and I can run dedicated just fine. But what I have just noticed is when I run the dedicated server with a mission and then load up the client on the same computer and join the running game via LAN query join the client will segfault after half-way through stage 1. I'm looking into why it accured and it might be related.