Overlord

Overlord

875k Downloads

Bad multithreading

LemADEC opened this issue ยท 1 comments

commented

Packet handlers are run in a separate thread, different from the main server.
Since the world isn't multithread safe, mods should not access it from packet handlers.
As of Overlord-1.10.2-2.1.1, skelleton spawning needs to be fix for this world corruption issue.

[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]: java.lang.Exception: Stack trace
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at java.lang.Thread.dumpStack(Thread.java:1333)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.entity.EntityTracker.handler$onAddEntityToTracker$zda000(EntityTracker.java:576)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.entity.EntityTracker.func_72785_a(EntityTracker.java)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraftforge.fml.common.registry.EntityRegistry.tryTrackingEntity(EntityRegistry.java:360)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.entity.EntityTracker.func_72786_a(EntityTracker.java:78)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.ServerWorldEventHandler.func_72703_a(ServerWorldEventHandler.java:33)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.World.func_72923_a(World.java:1142)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.WorldServer.func_72923_a(WorldServer.java:1118)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.WorldServer.onSpongeEntityAdded(WorldServer.java:2875)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.WorldServer.forceSpawnEntity(WorldServer.java:2922)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.WorldServer.forceSpawnEntity(WorldServer.java:2905)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at org.spongepowered.common.event.tracking.phase.general.GeneralState.spawnEntityOrCapture(GeneralState.java:87)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at org.spongepowered.common.event.tracking.phase.general.GeneralPhase.spawnEntityOrCapture(GeneralPhase.java:357)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at org.spongepowered.common.event.tracking.CauseTracker.spawnEntity(CauseTracker.java:617)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraft.world.WorldServer.func_72838_d(WorldServer.java:2646)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at the_fireplace.overlord.tileentity.TileEntityBabySkeletonMaker.spawnSkeleton(TileEntityBabySkeletonMaker.java:58)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at the_fireplace.overlord.network.packets.CreateSkeletonMessage$Handler.handleServerMessage(CreateSkeletonMessage.java:40)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at the_fireplace.overlord.network.packets.CreateSkeletonMessage$Handler.handleServerMessage(CreateSkeletonMessage.java:36)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at the_fireplace.overlord.network.packets.AbstractMessageHandler.onMessage(AbstractMessageHandler.java:25)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:56)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:36)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108)
[18:48:28] [Netty Epoll Server IO #19/INFO] [STDERR]: [java.lang.Thread:dumpStack:1333]:        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
commented

You're right, my bad. Completely forgot about that. I'll fix it asap.