[crossfire] Changing maps from under a running server

Kari Pahula kaol at iki.fi
Fri Mar 24 11:09:54 CST 2006


On Fri, Mar 24, 2006 at 03:36:22PM +0100, Tchize wrote:
> Kari Pahula a écrit :
> >One possibility to handle this is to open everything under maps/ on
> >server startup and just give file descriptors from that pool to the
> >server whenever it wants to read maps from there.  The inodes will
> >remain open until the file descriptors are closed and it'll be
> >possible to replace or even remove altogether the maps while the
> >server is running and the server won't notice a thing.
> >  
> >
> What's the point? If you load all maps inode at server startup you'll
> risk seriously to hit  the maximum file decriptor / process limit of the
> os (there are lots of map files), not to mention the waste of memory
> (each file descriptor has quite a good amount of various os datas
> associated to it).

The point is to be able to install new maps while the server is
running.  But I can see that just opening everything is not that
viable an option.

A less intrusive alternative would be to install the maps to a
maps/$versionnumber/ directory.  That way two versions of the maps
could coexist on disk and the server could take whatever steps
necessary to get players on to the other mapsets.

The debian-mentors mailing list was the first place I asked about how
to handle map installs[1].  They thought that upgrading maps should be
doable while the server was running.  They went as far as to suggest
to make upgrading the server possible without disconnecting players.
Not a patch that I'd like to try to make.

But I would be content to just put a large warning on the map packages
in Debian that installing them will trigger a server restart.  The
current way of silently copying over the old maps with the new ones
just seems too hazardous to me.  Players may end up stranded who knows
where with maps' pathnames changing and whatelse.

[1] http://lists.debian.org/debian-mentors/2006/03/msg00319.html




More information about the crossfire mailing list