I was just hosting a headless server with Titi, TitiSon, Jammy, and myself connecting form a second instance of MG running on the same computer (same configuration / data / log directories, too).
When the (rather massive) game was over and everyone except my own client had disconnected, I kept it running for some minutes. A few minutes later, I ran into "game is out of synch" (OoS) and an infinite loop, where this message kept repeating on screen, and the game kept being saved to disk every ~ 1 second.
Titi and I were wondering whether this infinite loop may actually have started earlier and be the root cause of this OoS (due to game saving delaying the game client). When trying to reproduce it, no write access to the savegame file took place, though. So we assume the savegame is only created in the case of an error.
So there are really two issues here: Clearly this OoS on a loopback interface link should not have happened in the first place. And then there shouldn't be any loop when you run into an out of synch situation, i.e. record / state the error situation once in a savegame and on screen, but do not repeat it, instead, pause the game and quit it as soon as all on-screen messages have been confirmed.
Some statistics about the OoS:
* none of my 4 CPU cores was at 100% load
* both file and verbose logging were disabled
* I had no special features activated (or can't think of any)
* my physical RAM was never in use by more than 50%
* there was little disk I/O
The server had been started using ./start_megaglest --headless-server-mode=vps,exit, the client using ./megaglest --connecthost=127.0.0.1. I noticed (using iotop) that MegaGlest would cause a 9 MB/sec write troughput on disk after the OoS had occurred, that's how I learnt about it writing the savegame: megaglest-saved.xml and megaglest-saved.xml.jpg are written about every one second when the game is in this state.
The savegame was 8.4 MB. that seems ather large, maybe it would be an option to look through it if this happens again, to tell whether incorrect data is stored.
When on the end of game stats screen, 1.7 GB RAM (of 8 GB physical) were in use and there were 15% of 400% CPU load sustained.
Back to the main menu, it was 1.5 GB RAM and 60% (of 400%) CPU load.
On the "video info" screen, CPU load increased to 90% (of 400%).