Re: [CODE] [MEDIT]

From: Will Andrews (andrews@TECHNOLOGIST.COM)
Date: 01/21/99


At 06:07 PM 1/21/99 -0700, you wrote:
>ok, when i compiled my mud (circlebpl14), i tryed to medit, and it
>crashed.  why does this happen, and does anyone have a code fix?

Excuse me, sir/madame. But do you expect us to be able to read your mind,
then psuedo-electronically login to your MUD's server (if that is even
possible), quickly analyze the code, run it, crash it, and gdb it
ourselves, then fix the bug, if it even exists (as it could possibly be a
poorly patched job of yours or a misconfiguration of your shell, or one of
a million other possibilities).

Okay. That's enough. Point here is: don't send the list questions without
having read the CircleMUD Mailing List FAQ (as the list postings request at
the end of each email you get from the list), searching the documentation,
etc. etc. If that doesn't work, go ahead and send the list email. BUT DO
NOT SIMPLY ASK WHY SOMETHING HAPPENS WITHOUT GIVING US A FULL REPORT, i.e.
gdb's backtrace output, what you precisely did (i.e. you medit'd what?),
etc. etc.

That said, I have an ObCircle:

Folks, the evil CHECKPOINT shutdown that my MUD has been experiencing over
time has been tracked down. It is my ferry.c code, derivative of Fili (of
DarkStar, if I remember correctly)'s own, with my extensive modifications
and expansionist code added. However, the MUD crashes in the update_ferry()
function (probably from an infinite loop, as Chris Jacobson suggested):

Core was generated by `circle.current'.
Program terminated with signal 6, Abort trap.
Cannot access memory at address 0x200a9080.
#0  0x201175d1 in ?? ()
(gdb) bt
#0  0x201175d1 in ?? ()
#1  0x20116e34 in ?? ()
#2  0x48c3 in nonblock (s=26) at comm.c:1812
#3  0xefbfdfdc in ?? ()
#4  0x87e4f in update_ferry () at ferry.c:137
#5  0x29e5 in heartbeat (pulse=33600) at comm.c:826
#6  0x28cd in game_loop (mother_desc=3) at comm.c:715
#7  0x1c04 in init_game (port=4000) at comm.c:274
#8  0x1a50 in main (argc=3, argv=0xefbfdd54) at comm.c:244

ferry.c:135-138:
if(time_info.hours == ferrys[onferrynum].ferry_time_board_dock1) {
  send_to_room(ferrys[onferrynum].board_dock_dock1,
real_room(ferrys[onferrynum].dock1_room));
  send_to_room(ferrys[onferrynum].board_ferry_dock1,
real_room(ferrys[onferrynum].ferry_at_dock_room));
}

Yes, the variables are all defined properly. Don't ask. (the ferry has
worked many times, too, without problems like these infinite loops).

This is where I get stumped. How can send_to_room possibly cause an
infinite loop?

Thanks in advance for ideas/suggestions.

--Acme, Maintenance Implementor & Demi-Coder [NIC: WA915]
The Black Dawn -- http://www.blackdawn.com/ -- telnet://blackdawn.com:4000


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST