Simple crash or...

Posted by Zeno on Thu 03 Mar 2005 07:17 PM — 8 posts, 20,034 views.

USA #0
Wed Mar  2 15:29:16 PST 2005
Using host libthread_db library "/lib/tls/libthread_db.so.1".
Core was generated by `inuyasha 1801 hotboot 5 ^B ^V  -1'.
Program terminated with signal 11, Segmentation fault.
#0  0x0816fb9a in do_accept (ch=0x9661538, argument=0xbfeec1b2 "")
    at newarena.c:825
825         dch->pcdata->lastvnuma = dch->in_room->vnum;
#0  0x0816fb9a in do_accept (ch=0x9661538, argument=0xbfeec1b2 "")
    at newarena.c:825
#1  0x080e83f4 in interpret (ch=0x9661538, argument=0xbfeec1b2 "")
    at interp.c:577
#2  0x080bd967 in game_loop () at comm.c:688
#3  0x080bd209 in main (argc=8, argv=0xbfeec5f0) at comm.c:317
#0  0x0816fb9a in do_accept (ch=0x9661538, argument=0xbfeec1b2 "")
    at newarena.c:825
825         dch->pcdata->lastvnuma = dch->in_room->vnum;
820           xREMOVE_BIT(ch->act, PLR_NOFINISH);
821         if ( xIS_SET(dch->act, PLR_NOFINISH) )
822           xREMOVE_BIT(dch->act, PLR_NOFINISH);
823         ch->challenged = NULL;
824         ch->pcdata->lastvnuma = ch->in_room->vnum;
825         dch->pcdata->lastvnuma = dch->in_room->vnum;
826         char_from_room(ch);
827         char_to_room(ch, get_room_index(PREP_END));
828         do_look(ch,"auto");
829         char_from_room(dch);


dch->pcdata->lastvnuma = dch->in_room->vnum;

(gdb) p dch->pcdata->lastvnuma
$1 = 0
(gdb) p dch->in_room->vnum
$2 = 744


The only odd thing (besides a crash caused by setting vnuma) is the buf, when info locals was done.
(gdb) info locals
dch = (CHAR_DATA *) 0x9671290
buf = "Bryan has accepted Touran's challenge!", '\0' <repeats 14 times>, "t?\000\000say \000\000\000\000doctor is quite a skilled healer. Everyone in the city knows that.\000\000say He often likes to collect a fee of 100 yen for his services, though."...


Anything here that can be seen causing the crash?
USA #1
Strange bug. I'd check for make-clean/remake, or something like that.
USA #2
Last make clean was the 1st, two days ago. Haven't modified any header files since then.
USA #3
Afraid I can't help you here... it looks fine to me. Can you reproduce it?
USA #4
Nope. If I could, I'd probably be able to fix it. Most of the crashes I can't reproduce, they seem to happen at random.
USA #5
I don't see anything wrong with what you've posted either. About the only thing I could come up with is that maybe one of the things being accessed is actually free'd memory that hasn't been cleaned up. I just went through a whole bunch of that :)
USA #6
It might be. There are still a few bug fixes you found recently which I haven't applied. Or it could just be this arena snippet. Nothing but trouble for many weeks. Still issues.
USA #7
Gah. 2nd time it's happened.
Thu Mar  3 15:36:37 PST 2005
Using host libthread_db library "/lib/tls/libthread_db.so.1".
Core was generated by `../src/inuyasha 1801'.
Program terminated with signal 11, Segmentation fault.
#0  0x0816fb9a in do_accept (ch=0x8810be0, argument=0xbffcb626 "")
    at newarena.c:825
825         dch->pcdata->lastvnuma = dch->in_room->vnum;
#0  0x0816fb9a in do_accept (ch=0x8810be0, argument=0xbffcb626 "")
    at newarena.c:825
#1  0x080e83f4 in interpret (ch=0x8810be0, argument=0xbffcb626 "")
    at interp.c:577
#2  0x080bd967 in game_loop () at comm.c:688
#3  0x080bd209 in main (argc=2, argv=0xbffcba60) at comm.c:317
#0  0x0816fb9a in do_accept (ch=0x8810be0, argument=0xbffcb626 "")
    at newarena.c:825
825         dch->pcdata->lastvnuma = dch->in_room->vnum;
820           xREMOVE_BIT(ch->act, PLR_NOFINISH);
821         if ( xIS_SET(dch->act, PLR_NOFINISH) )
822           xREMOVE_BIT(dch->act, PLR_NOFINISH);
823         ch->challenged = NULL;
824         ch->pcdata->lastvnuma = ch->in_room->vnum;
825         dch->pcdata->lastvnuma = dch->in_room->vnum;
826         char_from_room(ch);
827         char_to_room(ch, get_room_index(PREP_END));
828         do_look(ch,"auto");
829         char_from_room(dch);
dch = (CHAR_DATA *) 0x88da030
buf = "Chaz has accepted bear cub's challenge!\000say Can I help you?\000\000\000\000\000doctor is quite a skilled healer. E$
#1  0x080e83f4 in interpret (ch=0x8810be0, argument=0xbffcb626 "")
    at interp.c:577
577         (*cmd->do_fun) ( ch, argument );
572          * Dispatch the command.
573          */
574         ch->prev_cmd = ch->last_cmd;    /* haus, for automapping */
575         ch->last_cmd = cmd->do_fun;
576         start_timer(&time_used);
577         (*cmd->do_fun) ( ch, argument );
578         end_timer(&time_used);
579         /*
580          * Update the record of how many times this command has been used (haus)
581          */
command = "accept\000\000e\000o\000Umak1m\033[1;31m+\033[41m\033[1;31m+\033[40m \033[40m \033[40m\033[1;36m>\033[1;34m  a pl$
logline = "accept\000\b\016\002\000\000s*\000en\000...\000e listen?\000on't kno whoo he is*shutters*", '\0' <repeats 51 time$
logname = "\204,­û¸T\207\b\bªü¿Ä.40\000\000\000\000ôï\231\000XÈ\217\b ë\231\000\030ªü¿\036×\214\000\026y\215\000É\006\027\b\$
buf = 0x3ee ""
timer = (TIMER *) 0x858d228
cmd = (CMDTYPE *) 0x858d228
trust = 140038696
loglvl = 140038696
found = 1 '\001'
time_used = {tv_sec = 1109892997, tv_usec = 519697}
tmptime = 1006
chance = 140038696
logger = (CHAR_DATA *) 0x0
#2  0x080bd967 in game_loop () at comm.c:688
688                                     interpret( d->character, cmdline );
683                               {
684                                default:
685                                     nanny( d, cmdline );
686                                     break;
687                                case CON_PLAYING:
688                                     interpret( d->character, cmdline );
689                                     break;
690                                case CON_EDITING:
691                                     edit_buffer( d->character, cmdline );
692                                     break;
last_time = {tv_sec = 1109892997, tv_usec = 519637}
cmdline = "accept\000utters*\000en\000...\000e listen?\000on't kno whoo he is*shutters*\000wolf demon)\000ct when they were $
d = (DESCRIPTOR_DATA *) 0x88ecfe0
#3  0x080bd209 in main (argc=2, argv=0xbffcba60) at comm.c:317
317         game_loop( );
312           if( fCopyOver )
313           {
314              log_string( "Initiating hotboot recovery." );
315              hotboot_recover();
316           }
317         game_loop( );
318         sprintf(buf, "Shutting down Wolfpaw webserver on port %d.", port+2);
319         log_string(buf);
320         shutdown_web();
321
now_time = {tv_sec = 1109806181, tv_usec = 889346}
buf = "Booting Wolfpaw webserver on port 1803.", '\0' <repeats 1013 times>, "¶ð\206\000Ôo\207\000\230Âü¿\000Pÿ·D\000\232\000$
hostn = "boralis.arthmoor.com", '\0' <repeats 107 times>
fCopyOver = 0 '\0'
#0  0x00000000 in ?? ()
322         closesocket( control  );
323
324     #ifdef I3
325         I3_shutdown( 0 );
326     #endif
327
328     #ifdef WIN32
329         if (service_shut_down)
330         {
331             CHAR_DATA *vch;
No symbol table info available.
#0  0x00000000 in ?? ()
332
333             /* Save all characters before booting. */
334             for ( vch = first_char; vch; vch = vch->next )
335                 if ( !IS_NPC( vch ) )
336                 {
337                     shutdown_checkpoint ();
338                     save_char_obj( vch );
339                 }
340             }
341         /* Shut down Windows sockets */
No symbol table info available.