From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Spottedleaf <Spottedleaf@users.noreply.github.com> Date: Mon, 13 May 2019 21:10:59 -0700 Subject: [PATCH] Fix CraftServer#isPrimaryThread and MinecraftServer isMainThread md_5 changed it so he could shut down the server asynchronously from watchdog, although we have patches that prevent that type of behavior for this exact reason. md_5 also placed code in PlayerConnectionUtils that would have solved https://bugs.mojang.com/browse/MC-142590, making the change to MinecraftServer#isMainThread irrelevant. By reverting his change to MinecraftServer#isMainThread packet handling that should have been handled synchronously will be handled synchronously when the server gets shut down. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 3d59157b1b5a7bfcfd53142f64f2e6b0093637ff..8eeb1b1f2b34a231931b4dcadd7379a7dd79fe44 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2299,7 +2299,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start @Override public boolean isSameThread() { - return super.isSameThread() || this.isStopped(); // CraftBukkit - MC-142590 + return super.isSameThread() /*|| this.isStopped()*/; // CraftBukkit - MC-142590 // Paper - causes issues elsewhere } public boolean isDebugging() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index fe5a676abb5c47045f6ca1a6dde78d9859b43abe..403f4166b9e27a9037920195996e7f13c2fb31a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2049,7 +2049,7 @@ public final class CraftServer implements Server { @Override public boolean isPrimaryThread() { - return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog) + return Thread.currentThread().equals(console.serverThread); // Paper - Fix issues with detecting main thread properly } // Paper start