Re: [DG-EVENTS] Queue.c Assertion Error <Pine.BSI.3.95.980814111551.16544A-100000@shell1.cybercom.net>

From: Kevin Doherty (kdoherty@JURAI.NET)
Date: 08/14/98


Thus spake Ryan Gasper or Steven Arnold <dalamar@CYBERCOM.NET>:
>  Every now and then, when someone leaves my MUD, the MUD crashes. Syslog
>shows an error of "Assertion of qe failed on line 100 of queue.c". Why
>would this be happening? I have a check in extract char to see if they
>have a regen event going to stop it, and a spell casting thing, to clear
>that if a player quits in the middle of casting a spell. I have just puts
>logs all over extract char and especially when the events call
>cancel_event, but I don't know how to re-create the crashing.. so I will
>have to wait till it just crashes. Anyone had this problem at all?

From what I can tell, I think the error may be that you're ending the
event early, but whatever variable holds the pointer to the event struct
isn't getting set to NULL. That is, something like this occurs:

  cancel_event(GET_SOMEEVENT(ch));
  ...
  if (GET_SOMEEVENT(ch) != NULL) {
    cancel_event(GET_SOMEEVENT(ch));
  }

Or, rather than cancelling the event, you just let it default to not
scheduling the event again in your eventfunc but GET_SOMEEVENT(ch) still
isn't getting NULLed.

BTW- it's been a couple months since I looked at the events, so I might be
on crack. :)

--
Kevin Doherty, kdoherty@jurai.net
"Multiple exclamation marks are a sure sign of a diseased mind."
       -- Rincewind (from _Eric_)


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



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