From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: hayanesuru Date: Sat, 7 Jun 2025 20:33:16 +0900 Subject: [PATCH] dump pwt thread diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java index e45d5da04428c26fc6aa97fba974bde3573d7950..745a9afcdb8ea3047c1fcdc91971ba8f034cbd39 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -8,6 +8,7 @@ import java.lang.management.ThreadInfo; import java.util.logging.Level; import java.util.logging.Logger; import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.CraftServer; @@ -124,8 +125,21 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre logger.log(Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Leaf!):"); // Paper // Gale - branding changes // Leaf - Rebrand FeatureHooks.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - log detailed tick information WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE), logger); + // Leaf start logger.log(Level.SEVERE, "------------------------------"); - + logger.log(Level.SEVERE, "Parallel world ticking thread dump"); + for (Thread thread : org.apache.commons.lang3.ThreadUtils.getAllThreads()) { + if (MinecraftServer.getServer().serverThread == thread || thread instanceof WatchdogThread) { + continue; + } + if (thread instanceof ca.spottedleaf.moonrise.common.util.TickThread tickThread) { + if (tickThread instanceof ServerLevelTickThread tickThread1) { + WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(tickThread1.getId(), Integer.MAX_VALUE), logger); + } + } + } + logger.log(Level.SEVERE, "------------------------------"); + // Leaf end // Paper start - Only print full dump on long timeouts if (isLongTimeout) { logger.log(Level.SEVERE, "Entire Thread Dump:");