> > ObCircle: Has anyone done anything like catching SIGSEGVs, writing a > copyover file (assuring certain integrity first), and rebooting that > way? No lost connections. This is a simplified version of using > mprotect to ensure safe saves when segment violations happen, and > would be a fairly easy first-step. > I believe that would be problematic, since any crash errors being created would by their very nature, require very _very_ indepth integrity checking, and the chance that you'd have to blank out entire pieces of data (say, the third member in a linked list, or the player saved_data structure...) which would end up - I'd suspect - causing even more trouble - specially if said data is saved.. you'd have the symptoms of the crash, even if you fixed the crash in the first place. Even just doing basic signal catching usually ruins a good part of the gdb core output (using abort(), or sending a SIG_TERM (depending on how POSIX-oriented you are i'd guess). Its very hard to insure that you don't backup over the frame that holds useful information. If you're that woried about the connections, I'd say fork a seperate process containing the socket/descriptor data, and have that be the mainstay. Should the mud die, reboot it, and restore only the descriptors, re-load all the saved-type data... deal with the fact that its a normal crash, you just didn't have to log back in, its don'e for you automatically. PjD +------------------------------------------------------------+ | 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