PaperMC / Paper

The most widely used, high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
Other
9.67k stars 2.25k forks source link

StackOverflowError on server stop #10404

Closed brickmonster closed 4 months ago

brickmonster commented 5 months ago

Stack trace

[11:13:17.302 INFO]: asd[IP hidden] logged in with entity id 16 at ([startup_world]1.5, 4.0, 1.5)
[11:13:19.661 INFO]: asd issued server command: /stop
␛[33;1m[11:13:19.669 WARN]: Called safeShutdown(wait=false)
java.lang.Throwable: Called safeShutdown
    at net.minecraft.server.MinecraftServer.safeShutdown(MinecraftServer.java:1067) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.server.MinecraftServer.halt(MinecraftServer.java:1062) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.server.commands.StopCommand.lambda$register$2(StopCommand.java:16) ~[bricko.mc.Main:?]
    at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
    at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:32) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:101) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:412) ~[bricko.mc.Main:?]
    at net.minecraft.commands.Commands.performCommand(Commands.java:334) ~[bricko.mc.Main:?]
    at net.minecraft.commands.Commands.performCommand(Commands.java:321) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2254) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2212) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[bricko.mc.Main:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) ~[?:?]
    at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[bricko.mc.Main:?]
    at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1491) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[bricko.mc.Main:?]
    at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1468) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1391) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[bricko.mc.Main:?]
    at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1369) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1252) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at java.lang.Thread.run(Unknown Source) ~[?:?]
␛[m[11:13:19.707 INFO]: Stopping server
[11:13:19.707 INFO]: [BungeeGuard] Disabling BungeeGuard v1.3-SNAPSHOT
[11:13:19.711 INFO]: [Lobby] Disabling Lobby vGIT
[11:13:19.715 INFO]: [GameSelector] Disabling GameSelector vGIT
[11:13:19.716 INFO]: [Mono] Disabling Mono vGIT
[11:13:19.716 INFO]: [Mono/Actor] Disabling module
[11:13:19.716 INFO]: [Mono/BlockAnim] Disabling module
[11:13:19.716 INFO]: [Mono/Cosmetics] Disabling module
[11:13:19.716 INFO]: [Mono/Friend] Disabling module
[11:13:19.716 INFO]: [Mono/Launch] Disabling module
[11:13:19.716 INFO]: [Mono/NPC] Disabling module
[11:13:19.716 INFO]: [Mono/Nick] Disabling module
[11:13:19.716 INFO]: [Mono/Parkour] Disabling module
[11:13:19.716 INFO]: [Mono/Parti] Disabling module
[11:13:19.716 INFO]: [Mono/Party] Disabling module
[11:13:19.716 INFO]: [Mono/Profile] Disabling module
[11:13:19.716 INFO]: [Mono/Props] Disabling module
[11:13:19.716 INFO]: [Mono/TriggerRegion] Disabling module
[11:13:19.716 INFO]: [Mono/Vanish] Disabling module
[11:13:19.716 INFO]: [Mono/World] Disabling module
[11:13:19.717 INFO]: [InfluxMetrics] Disabling InfluxMetrics vGIT
[11:13:19.718 INFO]: [TestingBukkit] Disabling TestingBukkit vGIT
[11:13:19.718 INFO]: [Debug] Disabling Debug vGIT
[11:13:19.719 INFO]: [ProxyConnectorBukkit] Disabling ProxyConnectorBukkit vGIT
[11:13:19.719 INFO]: [Replay] Disabling Replay vGIT
[11:13:19.719 INFO]: [PluginWrapper] Disabling PluginWrapper vGIT
[11:13:19.720 INFO]: [WorldEdit] Disabling WorldEdit v7.3.0+6678-55745ad
[11:13:19.726 INFO]: Unregistering com.sk89q.worldedit.bukkit.BukkitServerInterface from WorldEdit
[11:13:19.727 INFO]: [LuckPerms] Disabling LuckPerms v5.4.102
[11:13:19.727 INFO]: [PlaceholderAPI] Unregistered placeholder expansion luckperms
[11:13:19.727 INFO]: [PlaceholderAPI] Reason: required plugin LuckPerms was disabled.
[11:13:19.727 INFO]: [LuckPerms] Starting shutdown process...
[11:13:19.729 INFO]: [LuckPerms] Closing messaging service...
[11:13:19.729 INFO]: [LuckPerms] Closing storage...
[11:13:19.729 INFO]: [me.lucko.luckperms.lib.hikari.HikariDataSource] luckperms-hikari - Shutdown initiated...
[11:13:19.733 INFO]: [me.lucko.luckperms.lib.hikari.HikariDataSource] luckperms-hikari - Shutdown completed.
[11:13:19.748 INFO]: [LuckPerms] Goodbye!
[11:13:19.749 INFO]: [PlaceholderAPI] Disabling PlaceholderAPI v2.11.5
␛[33;1m[11:13:19.874 WARN]: java.lang.StackOverflowError
␛[m␛[33;1m[11:13:19.874 WARN]:  at java.base/java.lang.invoke.VarHandleReferences$FieldInstanceReadWrite.weakCompareAndSet(Unknown Source)
␛[m␛[33;1m[11:13:19.874 WARN]:  at java.base/java.util.concurrent.ConcurrentLinkedDeque.linkFirst(Unknown Source)
␛[m␛[33;1m[11:13:19.874 WARN]:  at java.base/java.util.concurrent.ConcurrentLinkedDeque.addFirst(Unknown Source)
␛[m␛[33;1m[11:13:19.874 WARN]:  at java.base/java.util.concurrent.ConcurrentLinkedDeque.push(Unknown Source)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:48)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.874 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.875 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
<snip>
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
␛[m␛[33;1m[11:13:19.900 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1333)
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m␛[31;1m[11:13:24.754 ERROR]: Nag author(s): 'null' of 'Minecraft v1.0' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
␛[m[11:13:24.754 INFO]: Saving players
[11:13:24.756 INFO]: asd lost connection: Server is restarting. Rejoin in 2 minutes.
[11:13:24.765 INFO]: asd left the game
[11:13:24.866 INFO]: Saving worlds
[11:13:24.866 INFO]: Saving chunks for level 'ServerLevel[startup_world]'/minecraft:overworld
[11:13:24.883 INFO]: [ChunkHolderManager] Waiting 60s for chunk system to halt for world 'startup_world'
[11:13:24.883 INFO]: [ChunkHolderManager] Halted chunk system for world 'startup_world'
[11:13:24.884 INFO]: [ChunkHolderManager] Saving all chunkholders for world 'startup_world'
[11:13:25.340 INFO]: [ChunkHolderManager] Saved 529 block chunks, 529 entity chunks, 0 poi chunks in world 'startup_world' in 0.45s
[11:13:25.355 INFO]: ThreadedAnvilChunkStorage (startup_world): All chunks are saved
[11:13:25.355 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
[11:13:25.355 INFO]: Saving usercache.json
[11:13:25.355 INFO]: Flushing Chunk IO
[11:13:25.355 INFO]: Closing Thread Pool
[11:13:25.356 INFO]: Closing Server
[11:13:25.356 INFO]: [org.bukkit.craftbukkit.v1_20_R3.util.ServerShutdownThread] Received shutdown signal
␛[33;1m[11:13:25.356 WARN]: Called safeShutdown(wait=false)
java.lang.Throwable: Called safeShutdown
    at net.minecraft.server.MinecraftServer.safeShutdown(MinecraftServer.java:1067) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at org.bukkit.craftbukkit.v1_20_R3.util.ServerShutdownThread.run(ServerShutdownThread.java:17) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]

Plugin and Datapack List

Lots of private plugins

Actions to reproduce (if known)

Run /stop with at least one player online

Paper version

Private fork of Paper-467 - Updated Upstream (Bukkit/CraftBukkit) (https://github.com/PaperMC/Paper/pull/10379)

Other

The version above is the first paper commit where the issue appears. The commit is a re-base of upstream that, among other things, removes a mitigation for MC-142590 with the exact same symptoms as this issue.

The line numbers in the stack trace are probably wrong because it's a fork, but the fork does not contain any changes in the offending functions.

I'm open to it being an issue with my fork (nobody else has reported it that I saw) but the mitigation removal seems far more likely to be the cause and I'm just triggering it more frequently than others somehow.

The server is behind Waterfall but I doubt that's relevant.

brickmonster commented 5 months ago

The "Called safeShutdown" throwable isn't present in paper, that's just for me.

Leguan16 commented 5 months ago

You effectively give us nothing really to work with besides a StackOverflow. Usually the Exception gives you a hint where to start looking at. But it's pretty hard for us to figure stuff out without plugins. Besides that you are running on a fork. So you are generally on your own. Try to reproduce with paper and binary search the plugins. Lastly you are most likely running in offline mode. I give you the benefit of the doubt that you are running offline mode for testing. The fact that the error occurred when disabling Protocol lib indicates that it might have something to do with that.

electronicboy commented 5 months ago

https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/29b6bb79bfc48e9b2b7df23236784685f4903214

brickmonster commented 5 months ago

@electronicboy Yeah that's the upstream commit I'm referencing, it's the only thing I have to go on at the moment.

@Leguan16 I've just tested in online mode with no third-party plugins or proxy, and I still get the error. I think you mistook placeholderapi for protocollib? I don't have protocollib and only mess with packets when it comes to the tablist. I'm working rn to cut out some more internals.

Ig this issue is partly wishful thinking that somebody just hadn't noticed yet.

Leguan16 commented 5 months ago

I think you mistook placeholderapi for protocollib?

Oops yeah I misread that. And I think electronicboy already answered your question with the link. I wasn't aware of that issue :)

brickmonster commented 5 months ago

Lesson learned; don't be lazy, use a thread for long-running daemon tasks instead of the task scheduler with a fake plugin. Not a clue how that caused it to get stuck in a packet handler though, that's completely opaque to me.

brickmonster commented 4 months ago

I'm no longer sleepy and I have confirmed this on the latest paper (This server is running Paper version git-Paper-478 (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: 5436d44)) with default config and no plugins.

There must be at least one player online. That player must be moving. It's easiest to trigger if you run /stop while falling but it's not 100% reliable.

Here's a paper stacktrace: https://paste.gg/p/anonymous/8c31d84c7ba84b4eb182e70639244fae Below is another stacktrace with some additional logging I added.

[13:22:46.527 WARN]: [bricko/PacketLogging] RECV: ServerboundMovePlayerPacket$Pos (-345550969)
[13:22:46.528 WARN]: [log-bukkit-events-noisy] Fire event: PlayerMoveEvent
[13:22:46.542 WARN]: [log-bukkit-events-noisy] Fire event: ServerTickStartEvent
[13:22:46.543 WARN]: [log-bukkit-events-noisy] Fire event: PlayerNaturallySpawnCreaturesEvent
[13:22:46.543 WARN]: [log-bricko-events-noisy] Fire event: WorldTickStopEventImpl{tick=142,world=WorldImpl{name=startup_world,uuid=9881c91b-3a82-4367-9103-9464e9da4f61,id=minecraft:overworld}}
[13:22:46.545 WARN]: [log-bukkit-events] Fire event: ChunkLoadEvent
[13:22:46.545 WARN]: [log-bukkit-events-noisy] Fire event: EntitiesLoadEvent
[13:22:46.545 WARN]: [log-bukkit-events] Fire event: ChunkLoadEvent
[13:22:46.545 WARN]: [log-bukkit-events-noisy] Fire event: EntitiesLoadEvent
[13:22:46.545 WARN]: [log-bukkit-events-noisy] Fire event: ServerTickEndEvent
[13:22:46.554 INFO]: [org.bukkit.craftbukkit.v1_20_R3.util.ServerShutdownThread] Received shutdown signal
[13:22:46.562 WARN]: Called safeShutdown(wait=false)
java.lang.Throwable: Called safeShutdown
    at net.minecraft.server.MinecraftServer.safeShutdown(MinecraftServer.java:1067) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
    at org.bukkit.craftbukkit.v1_20_R3.util.ServerShutdownThread.run(ServerShutdownThread.java:17) ~[paper-1.20.4.jar:git-Paper-"32bba4b"]
[13:22:46.592 INFO]: Stopping server
[13:22:46.594 WARN]: [bricko/PacketLogging] RECV: ServerboundMovePlayerPacket$Pos (-345550969)
[13:22:46.594 ERROR]: [bricko/PlayerConnection] 10 deep
java.lang.Throwable: 10 deep
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1331) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[bricko.mc.Main:?]
    at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42) ~[bricko.mc.Main:?]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29) ~[bricko.mc.Main:?]
    at net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66) ~[bricko.mc.Main:?]
    at net.minecraft.network.Connection.genericsFtw(Connection.java:314) ~[bricko.mc.Main:?]
    at net.minecraft.network.Connection.channelRead0(Connection.java:294) ~[bricko.mc.Main:?]
    at net.minecraft.network.Connection.channelRead0(Connection.java:61) ~[bricko.mc.Main:?]
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:202) ~[netty-handler-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:164) ~[netty-handler-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[netty-handler-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152) ~[netty-handler-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[netty-transport-classes-epoll-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[netty-transport-classes-epoll-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[netty-transport-classes-epoll-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
    at java.lang.Thread.run(Unknown Source) ~[?:?]
[13:22:46.597 INFO]: Saving players
[13:22:46.598 INFO]: brickmonster lost connection: Server is restarting. Rejoin in 2 minutes.
[13:22:46.598 WARN]: [log-bukkit-events] Fire event: PlayerStatisticIncrementEvent
[13:22:46.599 WARN]: [log-bukkit-events] Fire event: PlayerQuitEvent
[13:22:46.602 WARN]: [log-bukkit-events] Fire event: InventoryCloseEvent
[13:22:46.605 WARN]: [log-bukkit-events] Fire event: EntityRemoveFromWorldEvent
[13:22:46.606 INFO]: brickmonster left the game
[13:22:46.610 WARN]: java.lang.StackOverflowError
[13:22:46.610 WARN]:  at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(Unknown Source)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:100)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:47)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(PacketUtils.java:42)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.server.network.ServerGamePacketListenerImpl.handleMovePlayer(ServerGamePacketListenerImpl.java:1335)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.handle(ServerboundMovePlayerPacket.java:29)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos.handle(ServerboundMovePlayerPacket.java:66)
[13:22:46.610 WARN]:  at bricko.mc.Main//net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54)

<snip> it's a very long recursive stack trace

[13:22:46.706 INFO]: Saving worlds
[13:22:46.713 INFO]: Saving chunks for level 'ServerLevel[startup_world]'/minecraft:overworld
[13:22:46.750 INFO]: [ChunkHolderManager] Waiting 60s for chunk system to halt for world 'startup_world'
[13:22:46.758 INFO]: [ChunkHolderManager] Halted chunk system for world 'startup_world'
[13:22:46.771 INFO]: [ChunkHolderManager] Saving all chunkholders for world 'startup_world'
[13:22:47.314 INFO]: ThreadedAnvilChunkStorage (startup_world): All chunks are saved
[13:22:47.319 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
[13:22:47.325 INFO]: Saving usercache.json
[13:22:47.330 INFO]: Flushing Chunk IO
[13:22:47.335 INFO]: Closing Thread Pool
[13:22:47.340 INFO]: Closing Server
electronicboy commented 4 months ago

https://github.com/PaperMC/Paper/blob/5436d44bf2509ff89129f8790ee4643f09c72871/patches/server/0818-Fix-player-kick-on-shutdown.patch is part 1 of the issue here

electronicboy commented 4 months ago

https://github.com/PaperMC/Paper/pull/10408 - should solve this issue. The patch on our side basically causes an issue as it tries to immediately execute the callback due to the server stopping, which runs off the main thread, which then causes issues because, we're off the main thread, so the packet handler tries to reschedule a callback onto the main thread, which immediately executes because we're stopping...

removing that patch fixes the issue, but, I also implemented an alternative solution to what that patch was trying to solve

brickmonster commented 4 months ago

Thanks :)