Refined Storage

Refined Storage

77M Downloads

Autocrafting server crash on player disconnect

rbaker87 opened this issue ยท 2 comments

commented

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:

  1. Initiate a long running auto-craft queue
  2. Open a Crafting Monitor
  3. 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)

commented

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.

commented

This is a duplicate of #2132