Increase freeze conditions, fix watchdog timeout
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
Dieser Commit ist enthalten in:
Ursprung
249efd7024
Commit
0c9048c346
@ -58,7 +58,7 @@ public class CheckpointUtils {
|
||||
Bukkit.getOnlinePlayers().forEach(player -> player.kickPlayer(null));
|
||||
|
||||
List<?> networkManagers = TinyProtocol.networkManagers.get(TinyProtocol.getServerConnection(Core.getInstance()));
|
||||
if(!networkManagers.isEmpty()) {
|
||||
if(!Bukkit.getOnlinePlayers().isEmpty() || !networkManagers.isEmpty()) {
|
||||
Core.getInstance().getLogger().log(Level.INFO, "Waiting for players to disconnect for checkpointing");
|
||||
Bukkit.getScheduler().runTaskLater(Core.getInstance(), CheckpointUtils::freeze, 1);
|
||||
return;
|
||||
|
@ -29,7 +29,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
public class CrashDetector {
|
||||
|
||||
private static final long TIMEOUT = 20000;
|
||||
private static final long TIMEOUT = 20_000_000_000L;
|
||||
private final AtomicLong lastTick = new AtomicLong(Long.MAX_VALUE);
|
||||
private final AtomicLong lastMessage = new AtomicLong(Long.MAX_VALUE);
|
||||
private final Thread mainThread = Thread.currentThread();
|
||||
@ -39,8 +39,8 @@ public class CrashDetector {
|
||||
|
||||
public CrashDetector () {
|
||||
Bukkit.getScheduler().runTaskTimer(Core.getInstance(), () -> {
|
||||
lastTick.set(System.currentTimeMillis());
|
||||
lastMessage.set(System.currentTimeMillis());
|
||||
lastTick.set(System.nanoTime());
|
||||
lastMessage.set(System.nanoTime());
|
||||
}, 0, 1);
|
||||
watchdog = new Thread(this::run, "SteamWar Watchdog");
|
||||
watchdog.setDaemon(true);
|
||||
@ -59,7 +59,7 @@ public class CrashDetector {
|
||||
private void run() {
|
||||
SWException.init();
|
||||
while (run) {
|
||||
long curTime = System.currentTimeMillis();
|
||||
long curTime = System.nanoTime();
|
||||
if(curTime - 4*TIMEOUT >= lastTick.get()) {
|
||||
SWException.log("Server did not recover in " + (curTime - lastTick.get()) + "ms, unclean server stop", "");
|
||||
hardStop();
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren