Affects Version/s: Minecraft 1.12.2, Minecraft 17w49b, Minecraft 1.13-pre4
Fix Version/s: None
It manifests itself when the game slows down significantly below 20tps, yet still chuggs along at low, but considerable TPS. Then server may crash with the following message:
The server falls behind, but not 60s per tick.
The reason of this is because the watchdog server takes the difference between the last time server set .currentTime and .getCurrentTimeMillis as an indication of the last time server was done with the tick as per
which is not correct as if the server has a tick buildup (falling behind), and presumably these ticks are not executed faster then the previous ones, it doesn't update server .currentTime in between these catchup ticks.
I assume that the max-tick-time in server.properties is reflecting a duration of a SINGLE tick, then the following addition should ensure this is true, so the watchdog could reliably read the length of the previous tick: