Autocrafting server crash on player disconnect
rbaker87 opened this issue ยท 2 comments
Issue description:
This one is a bit complicated to reproduce on a server running less mods, but this is what I believe is occurring. If a player is viewing a Crafting Monitor and disconnects with the window open and a task in the crafting queue, the server gets spammed with the following error. The error spam seems to eventually force a crash because a server tick is taking too long. I'll include that log at the bottom of this report:
[Server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.RuntimeException: PLAYER target expects a Player arg
at net.minecraftforge.fml.common.network.FMLOutboundHandler$OutboundTarget$4.validateArgs(FMLOutboundHandler.java:136) ~[FMLOutboundHandler$OutboundTarget$4.class:?]
at net.minecraftforge.fml.common.network.FMLOutboundHandler.write(FMLOutboundHandler.java:367) ~[FMLOutboundHandler.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:730) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:816) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:723) ~[minecraft_server.1.12.2.jar:?]
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:111) ~[minecraft_server.1.12.2.jar:?]
at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:801) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:831) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1032) ~[minecraft_server.1.12.2.jar:?]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:296) ~[minecraft_server.1.12.2.jar:?]
at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.sendTo(SimpleNetworkWrapper.java:250) ~[SimpleNetworkWrapper.class:?]
at com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor.onChanged(ContainerCraftingMonitor.java:96) ~[ContainerCraftingMonitor.class:?]
at java.lang.Iterable.forEach(Iterable.java:75) [?:1.8.0_191]
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager.onTaskChanged(CraftingManager.java:226) [CraftingManager.class:?]
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.updateProcessing(CraftingTask.java:779) [CraftingTask.class:?]
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.update(CraftingTask.java:882) [CraftingTask.class:?]
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager.update(CraftingManager.java:172) [CraftingManager.class:?]
at com.raoulvdberge.refinedstorage.tile.TileController.func_73660_a(TileController.java:211) [TileController.class:?]
at net.minecraft.world.World.func_72939_s(World.java:1835) [amu.class:?]
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613) [oo.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:767) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) [nz.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
What happens:
Overly long server tick forces watchdog to halt the server.
Steps to reproduce:
- Initiate a long running auto-craft queue
- Open a Crafting Monitor
- Disconnect from the game with the Crafting Monitor window still open
Version (make sure you are on the latest version before reporting):
- Minecraft: 1.12.2
- Forge: 14.23.5.2768
- Refined Storage: 1.6.12
Does this issue occur on a server? yes
If a (crash)log is relevant for this issue, link it here:
---- Minecraft Crash Report ----
WARNING: coremods are present:
AstralCore (astralsorcery-1.12.2-1.10.3.jar)
BedPatch (bedpatch-2.2-1.12.2.jar)
Plugin (NotEnoughIDs-1.5.4.3.jar)
CoreMod (Aroma1997Core-1.12.2-2.0.0.0.jar)
SplashAnimationCoremod (SplashAnimation-0.2.0.jar)
Inventory Tweaks Coremod (InventoryTweaks-1.63.jar)
ShetiPhian-ASM (ShetiPhian-ASM-1.12.0.jar)
EnderCorePlugin (EnderCore-1.12.2-0.5.43.jar)
ForgelinPlugin (Forgelin-1.8.0.jar)
IELoadingPlugin (ImmersiveEngineering-core-0.12-86.jar)
SecretRoomsMod-Core (secretroomsmod-1.12.2-5.6.4.jar)
LoadingPlugin (ResourceLoader-MC1.12.1-1.5.3.jar)
LoadingPlugin (Quark-r1.5-130.jar)
Do not report to Forge! (If you haven't disabled the FoamFix coremod, try disabling it in the config! Note that this bit of text will still appear.) (foamfix-0.10.2-1.12.2.jar)
TransformerLoader (OpenComputers-MC1.12.2-1.7.3.146.jar)
OpenModsCorePlugin (OpenModsLib-1.12.2-0.12.1.jar)
CTMCorePlugin (CTM-MC1.12.2-0.3.2.20.jar)
Contact their authors BEFORE contacting forge
// I blame Dinnerbone.
Time: 1/15/19 12:05 PM
Description: Watching Server
java.lang.Error: ServerHangWatchdog detected that a single server tick took 60.00 seconds (should be max 0.05)
at java.util.HashMap$EntrySet.iterator(HashMap.java:1014)
at com.google.common.collect.AbstractMapBasedMultimap$Itr.(AbstractMapBasedMultimap.java:1161)
at com.google.common.collect.AbstractMapBasedMultimap$1.(AbstractMapBasedMultimap.java:1208)
at com.google.common.collect.AbstractMapBasedMultimap.valueIterator(AbstractMapBasedMultimap.java:1208)
at com.google.common.collect.AbstractMultimap$Values.iterator(AbstractMultimap.java:204)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.getCraftingMonitorElements(CraftingTask.java:1111)
at com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorElements.toBytes(MessageCraftingMonitorElements.java:80)
at net.minecraftforge.fml.common.network.simpleimpl.SimpleIndexedCodec.encodeInto(SimpleIndexedCodec.java:30)
at net.minecraftforge.fml.common.network.simpleimpl.SimpleIndexedCodec.encodeInto(SimpleIndexedCodec.java:26)
at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.encode(FMLIndexedMessageToMessageCodec.java:81)
at io.netty.handler.codec.MessageToMessageCodec$1.encode(MessageToMessageCodec.java:67)
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:88)
at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:801)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:831)
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1032)
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:296)
at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.sendTo(SimpleNetworkWrapper.java:250)
at com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor.onChanged(ContainerCraftingMonitor.java:96)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager$$Lambda$3217/743535181.accept(Unknown Source)
at java.lang.Iterable.forEach(Iterable.java:75)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager.onTaskChanged(CraftingManager.java:226)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.updateProcessing(CraftingTask.java:779)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.update(CraftingTask.java:882)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager.update(CraftingManager.java:172)
at com.raoulvdberge.refinedstorage.tile.TileController.func_73660_a(TileController.java:211)
at net.minecraft.world.World.func_72939_s(World.java:1835)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:767)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
at java.lang.Thread.run(Thread.java:748)
A detailed walkthrough of the error, its code path and all known details is as follows:
-- Head --
Thread: Server Watchdog
Stacktrace:
at java.util.HashMap$EntrySet.iterator(HashMap.java:1014)
at com.google.common.collect.AbstractMapBasedMultimap$Itr.(AbstractMapBasedMultimap.java:1161)
at com.google.common.collect.AbstractMapBasedMultimap$1.(AbstractMapBasedMultimap.java:1208)
at com.google.common.collect.AbstractMapBasedMultimap.valueIterator(AbstractMapBasedMultimap.java:1208)
at com.google.common.collect.AbstractMultimap$Values.iterator(AbstractMultimap.java:204)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.getCraftingMonitorElements(CraftingTask.java:1111)
at com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorElements.toBytes(MessageCraftingMonitorElements.java:80)
at net.minecraftforge.fml.common.network.simpleimpl.SimpleIndexedCodec.encodeInto(SimpleIndexedCodec.java:30)
at net.minecraftforge.fml.common.network.simpleimpl.SimpleIndexedCodec.encodeInto(SimpleIndexedCodec.java:26)
at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.encode(FMLIndexedMessageToMessageCodec.java:81)
at io.netty.handler.codec.MessageToMessageCodec$1.encode(MessageToMessageCodec.java:67)
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:88)
at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:801)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:831)
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1032)
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:296)
at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.sendTo(SimpleNetworkWrapper.java:250)
at com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor.onChanged(ContainerCraftingMonitor.java:96)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager$$Lambda$3217/743535181.accept(Unknown Source)
at java.lang.Iterable.forEach(Iterable.java:75)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager.onTaskChanged(CraftingManager.java:226)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.updateProcessing(CraftingTask.java:779)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask.update(CraftingTask.java:882)
at com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager.update(CraftingManager.java:172)
at com.raoulvdberge.refinedstorage.tile.TileController.func_73660_a(TileController.java:211)
at net.minecraft.world.World.func_72939_s(World.java:1835)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:767)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
I've tried since and I can't seem to recreate this particular crash. It's possible that it was just a fluke caused by an unrelated issue from another mod. I'll keep trying to force this to pop up through normal use, but for now I'll just close this to avoid clutter.
This is a duplicate of #2132