I'm having an odd memory problem in the mud but I'm really confused on it. I
first noticed it cause we were crashing and when I went into GDB it was
crashing cause it was looping through a link list. And the tail of the link
list wasn't NULL it was bad memory. So I looked over the construction and
handling of that link list. And added something things just to make sure it
would have a NULL tail.. Well few hours latter it crashed again same reason
differen't link list. Did the same thing. Well today we have been crashing
for odd memory problems and the people logged on at the time are coming back
naked and a few levels behind... One guy was an hour behind. And so I've
been trying to track that down but the two cores I got I'm not sure it's
there suggesting this is my problem or if it's possiably the servers
problem. Heres the first one:

(gdb) bt

#0 0x400d8642 in chunk_alloc (ar_ptr=0x4018ac40, nb=368) at malloc.c:2878

#1 0x400d8444 in __libc_malloc (bytes=364) at malloc.c:2811

#2 0x400ca8ae in _IO_new_fopen (filename=0x818b86c "../area/area.lst",

mode=0x818cdef "w") at iofopen.c:50

#3 0x080fad1b in save_area_list () at olc_save.cc:96

(gdb) fram 3

#3 0x080fad1b in save_area_list () at olc_save.cc:96

96 if ( ( fp = fopen( AREA_LIST, "w" ) ) == NULL )

Current language: auto; currently c++



And heres the second one:

(gdb) print fpReserve

$1 = (FILE *) 0x8289338

(gdb) print *fpReserve

$2 = {_flags = 136876888, _IO_read_ptr = 0xd <Address 0xd out of bounds>,

_IO_read_end = 0xf <Address 0xf out of bounds>, _IO_read_base = 0x0,

_IO_write_base = 0xffffffff <Address 0xffffffff out of bounds>,

_IO_write_ptr = 0x0, _IO_write_end = 0x8298138 "╪\177)\b",

_IO_buf_base = 0x21 <Address 0x21 out of bounds>,

_IO_buf_end = 0x8289378 "", _IO_save_base = 0xc <Address 0xc out of bounds>,

_IO_backup_base = 0xfffffff4 <Address 0xfffffff4 out of bounds>,

_IO_save_end = 0x0, _markers = 0xffffffff, _chain = 0x0, _fileno = 0,

_blksize = 33, _old_offset = 0, _cur_column = 17, _vtable_offset = 0 '\000',

_shortbuf = "", _lock = 0xfffffffe, _offset = -4294967296, __pad1 = 0x0,

__pad2 = 0x82893e8, _mode = 33,

_unused2 = "╕\223(\b\002\000\000\000\001\000\000\000\000\000\000\000 \000\0

00\000\000¿\201)\b!\000\000\000\000\000\000\000\021\000\000\000■
\000\000\000\

000 "}



This second one crash in save_char_obj where it closes the reserve so it can
open the temp file to save a pfile. IDK I'm really baffled on this. And
currently I'm fighting with dmalloc trying to get it to work so I can see if
it is a memory problem in the source. But any help on any of this would be
nice.


Reply via email to