To the players this looks like a reload of an earlier save, but the server hasn't been restarted (continuous logfile). Opening the log file reveals that the server has been desyncing every 60 ticks (every second) during these lost 2 hours, without any map download to resync inbetween. I think the server ran its own simulation without the changes made by peers during that time.
List of events (by log seconds):
3 players are already on the server (48 - kaZ, 49 - Smarty, 50 - Lotny)
- 292757 - peer 51 (Loewchen) joins
- 292933 - map download finished - is InGame
- 293091 - Loewchen desyncs
Desync specification: Reference CRC = 4202485537, reference peers = {0, 48 (kaZ), 49 (Smarty), 50 (Lotny)}; desynced CRC = 2214895495, desynced peer = 51 (Loewchen) - 293258 - Loewchen has redownloaded and is InGame
- 293260 - the other 3 peers desync
Desync specification: Reference CRC = 2058056068, reference peers = {0, 51 (Loewchen)}; desynced CRC = 4163086446, desynced peer = 48 (kaZ)desynced CRC = 4163086446, desynced peer = 49 (Smarty)desynced CRC = 4163086446, desynced peer = 50 (Lotny) - 293286 - Loewchen closes the game and is dropped out, all the peers are InGame again
- 293286 - Starting from here, a desync happens every 60 mapTicks (same as the one above but without Loewchen)
- 298655 - peer 48 (kaZ) leaves
From that point on the desync still happens the same, but only with the remaining two peers - 301397 - peers 49 (Smarty) and 50 (Lotny) leave, server pauses as expected
Given that the mapTick progresses during that time and doesn't revert back at some time it's evident that the save hasn't been reset, but the players' changes have been lost. What I think happened is that after the server started to desync the server and the 3 peers (as a group, they always have the same CRC) ran different simulations and due to these diverging paths the actions of the peers couldn't be / haven't been made on the server simulation.
After they left only the server simulation was kept and new players got the server's simulation path.
The server is still running with 0.12.33, but the changelog doesn't lead me to believe that this bug or anything similar has been fixed in 0.12.35. I'm also aware that this will probably end up in 1 / 0 magic but I think the devs should be aware of this bug or at least the possibility of something like this happening.
EDIT: After reading the client log Smarty posted the peers see themselves as reference peers but the server sees itself as reference peer ("it's the other's fault"). Might that have something to do with it?