Re: Help (again)

From: James Turner (turnerjh@XTN.NET)
Date: 05/01/98


"Mark A. Heilpern" <heilpern@MINDSPRING.COM> writes:

> ObCircle:
> Thanks to whomever first posed the idea to catch SIGSEGV's and
> have them call copyover; great idea, and it seems to work reasonably
> well for me so far. I have had a single odd occurance (which was actually
> caused by a manual copyover, not a forced one): I had an error writing to
> a socket descriptor after rebooting, and got caught in a loop requiring a
> kill -9. After less than a few minutes of this, I had a 41 Meg log file
> ::grins::

One problem I've found is that you need to be sure to close all
descriptors you don't attach players to when you copyover.  The
problem is, if you exec and someone is in the CON_PASSWORD state, they
won't be written to the copyover file.  When the copyover happens,
though, their descriptors are still open and they get nothing because
the segv handler doesn't disconnect them (at least if you do it
without calling do_copyover... I wrote separate functions).  This is
easily solved by a few lines in the copyover writer and parser
(basically adding a "-2 %d" option that closes the descriptor %d).

This could cause a program to run out of descriptors (which is a bad
thing... very bad).

--
James Turner               turnerjh@xtn.net
                           http://www.vuse.vanderbilt.edu/~turnerjh/


     +------------------------------------------------------------+
     | 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