Re: Anybody ever seen a "warm reboot"

From: George Greer (greerga@circlemud.org)
Date: 12/23/99


On Thu, 23 Dec 1999, Daniel A. Koepke wrote:

>On Thu, 23 Dec 1999, Chris Gilbert wrote:
>
>> A nice extension you might want to do is pickup on the segv signal and
>> do this kind of reboot and saving only rent files (nothing else as it
>> all carries a risk)  I should probably put up a patch for that.
>> Probably helps with the rent duplication bug.  Works a treat though,
>> other than you end up with huge log files (Plan to rewrite the logging
>> system though)  At present the last full shutdown reboot was on dec
>> 16th and it's still logging into syslog (1MB at the moment).
>
>Blergh -- the last thing you want is to corrupt the rent file of some guy.
>A segmentation fault indicates an error in your handling of memory. You
>should not, and cannot, trust the state of memory after a SIGSEGV, as you
>can't know what caused the segmentation fault to begin with.

The only way I might trust such a state is to have a checksum field in
every record.  Even then I'd have to have a hellacious startup time to do
so.

>Anyway, while I'm at it, why is this approach even popular?

featuritis.[1]

>It'd be fairly trivial to have a manager program that accepts the
>connections, forks a copy of itself, and execs into CircleMUD.  End
>result?  No need to store/recover this stuff from files, the manager
>program handles everything, and there's very little you have to alter in
>the main Circle program (i.e., skip socket creation if the manager boots
>us, since the manager creates the server socket).

This is probably due the our mentality that "it shouldn't crash" versus the
quality of some code that some people (perhaps inadvertantly) put into the
MUD.  It may also be due to the popularity of a crash bug once it is
discovered.  It'd probably be something nice to do in the future though.

>I haven't worked out this model of persistence in my head, which should be
>fairly obvious to anyone reading this far, as I'm a bit shaky on what, in
>particular, you would want to do.

Stick it in an SQL database and give each person their own fork()'d server.
Make the SQL server figure out the locking and consistency issues. :)

--
George Greer            | CircleMUD Community Resources
greerga@circlemud.org   | http://www.circlemud.net/

[1] Argh! Why does RedHat not include a miscfiles-1.1.tar.gz package from
    ftp.gnu.org!  You get handy things like zipcodes, the Jargon file,
    airport abbreviations, city phone area codes, the US Constitution and
    Declaration of Independence, operator associativity, birthstones, and
    character maps.  Ok, granted some of it is US-specific but a lot of it
    (like the RFC index) could be very useful indeed.


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