top | item 43011877

(no title)

Erwin | 1 year ago

That was an amusing post to see pop up here, as I believe I came up with the "copyover" name when I copied Melvin Smith (aka "Fusion") idea about "hot reboot" from his "MUD++" code base to the popular Diku-based MERC/Envy etc. bases -- that was 2000 or probably earlier. Whether Melvin originally got the idea from somewhere else I don't know.

That version just used exec, and closed all files but network descriptors already logged in, the mapping of fds -> login names was saved in a file. When the new copy started up, it would log the users on existing file descriptors. Today, using explicit file descriptor passing (so you don't accidentally keep files open) or a long-running proxy would be preferable.

Back then C/C++ were often used by the developers, and we were at best CS students. There were surprisingly few segmentation faults, but I remember a few mysterious memory corruptions...

discuss

order

em-bee|1 year ago

2000 or probably earlier

according to the patches in the source posted on your website the main work was done 1996-1997 ;-)

i am actually surprised that this didn't happen earlier, given that Diku itself was inspired by LPMuds which could do live code update already in the early 90s. of course the motivation for Diku was to produce something more stable than LPMud, so maybe they didn't think that live updates were a good idea in the first place. (that said, i don't remember LPMuds being unstable myself, but i only played from about 1992 at which time it may have improved)

_jackdk_|1 year ago

So the original versions were even simpler than I knew! I'd like to add this detail to the article. How would you like to be credited?

tdeck|1 year ago

This kind of reminds me of a story I heard about how they passed around raw function pointers between servers as an RPC mechanism at Yahoo back in the day. They'd disabled ASLR to make that possible. I guess there were few enough segmentation faults :).

jonmarkgo|1 year ago

99% sure I used your copyover snippet when we first added it to our MUD like 25 years ago

johnbellone|1 year ago

I definitely used his copy over snippet when implementing it.

Multicomp|1 year ago

Only on HN. Thanks for sharing!