strange new crash

Posted by Gohan_TheDragonball on Sat 08 Dec 2007 03:30 PM — 5 posts, 21,615 views.

USA #0
i recently switched servers, and my mud came up with a wierd crash that has to do with the select() function in the game_loop(). i am guessing since i cannot find anyone other thread about this, and considering how long this code has been running, both the stock smaug 1.4 code and my modified code as well, it should have come up. i am left to conclude that this is a server issue. the server i am on has a timeout issue where it will cut a connection if nothing is being read/written to the server, since this is the only server i have been on with that issue, my guess is its that. here is the backtrace i get at the time of crash:

Final Point:

#7 0x080a9f16 in fgetf (s=0x82a7b80 "", n=1077354484, iop=0x0)
at
handler.c:5233
5233 break;

Steps leading up to this point:

#0
0x403069b8 in read () from /lib/libc.so.6
#1 0x40371ff4 in ?? () from /lib/libc.so.6
#2 0x402ba39b in _IO_file_read_internal () from /lib/libc.so.6
#3 0x402b9840 in _IO_new_file_underflow () from /lib/libc.so.6
#4 0x402bba5d in _IO_default_uflow_internal () from /lib/libc.so.6
#5 0x402bb87e in __uflow () from /lib/libc.so.6
#6 0x402b6cb7 in getc () from /lib/libc.so.6
#7 0x080a9f16 in fgetf (s=0x82a7b80 "", n=1077354484, iop=0x0) at handler.c:5233
#8 0x080a9ed4 in make_backtrace() at handler.c:5218
#9 0x080708d9 in SigTerm (signum=15) at comm.c:569
#10 <signal handler called>
#11 0x4030d3c2 in select () from /lib/libc.so.6
#12 0x00000000 in ?? ()
#13 0x00000000 in ?? ()
#14 0x475a1c7d in ?? ()
#15 0x080713d7 in game_loop () at comm.c:994
#16 0x0807075b in main (argc=4, argv=0xbffff6e4) at comm.c:440
USA #1
Did you remember to enable proper gdb settings on the server? Increase the core size, etc.
USA #2
Actually it looks to me like your memory is corrupted somehow. It got a 'term' signal while calling select, and then crashed when generating the stack trace.
USA #3
# Set limits.
nohup
nice
limit stacksize unlimited
limit coredumpsize unlimited

also, technically i am not getting a core dump, that is an in game backtrace at the time that exit is called.

static void SigTerm( int signum )
{
...
make_note("Personal", sysdata.mud_name, "Admin", "Crash Detected, Resulting Backtrace Report", 30, make_backtrace() );
}
Australia Forum Administrator #4
As I suggest in this thread:

http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=3653

I would take out the in-game backtrace, it makes debugging very hard indeed. Also compile with symbols imbedded in the code, so you can see more about the crash.