Re: [?] Strange SYSERR:

angus@EDGIL.CCMAIL.COMPUSERVE.COM
Date: 07/31/97


     Quote ------>
I would like to know the meanings of the following SYSERR's I have
encounted over a period of time...

SYSERR: CHECKPOINT shutdown: tics not updated

well after looking though the errors again, I only came up with one
so far i don't know the meaning of....
<-----Quote


ok... in comm.c:
setup_signals(){
.
.
.

  /*
   * set up the deadlock-protection so that the MUD aborts itself if it gets
   * caught in an infinite loop for more than 3 minutes.  Doesn't work with
   * OS/2.
   */
#ifndef CIRCLE_OS2
  interval.tv_sec = 180;
  interval.tv_usec = 0;
  itime.it_interval = interval;
  itime.it_value = interval;
  setitimer(ITIMER_VIRTUAL, &itime, NULL);
  my_signal(SIGVTALRM, checkpointing);
#endif
     .
     .
     .
     }
RETSIGTYPE checkpointing()
{
  if (!tics) {
    log("SYSERR: CHECKPOINT shutdown: tics not updated");
    abort();
  } else
    tics = 0;
}

     so... something sent off a SIGVTALRM, calling the checkpointing
     function.  from `man signal`

          SIGVTALRM   28      Exit      Virtual Timer Expired


     essentially, you are stuck in a loop, the timer sends out a SIGVTALRM
     (a wakeup call) every 180 seconds, calling the function checkpointing.
     checkpointing then sets tics to 0.  now, if tics is already 0, the mud
     dies because there have been no tics in the last 180 seconds.  there
     should be around 1800 tics. (pulses) at 1 tics/.1sec.  if you are
     really interested in how this works, man signal, man setitimer.  have
     fun...


     LUCK!
     --Angus


     +------------------------------------------------------------+
     | 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/08/00 PST