Server crashing on startup, EntityChaosNodePacket possibly to blame
rmonk opened this issue ยท 5 comments
When I start up the server, it seems to work ok, but logging in is slow/impossible. 60 seconds after the server starts, it "crashes" with a tick taking 60 seconds. Attached is the crash report.
crash-2017-06-17_22.26.51-server.txt
Most notable:
java.lang.Error
at net.minecraft.world.chunk.Chunk.func_177414_a(Chunk.java:903)
at net.minecraft.world.World.func_175674_a(World.java:2976)
at net.minecraft.world.World.func_72839_b(World.java:2959)
at net.minecraft.world.World.func_184144_a(World.java:1356)
at net.minecraft.entity.Entity.func_70091_d(Entity.java:710)
at net.silentchaos512.lib.util.EntityHelper.moveSelf(EntityHelper.java:19)
at net.silentchaos512.gems.entity.packet.EntityChaosNodePacket.func_70030_z(EntityChaosNodePacket.java:98)
I hope you don't mind being pinged, but I had the same issue running SilentsGems-1.11.2-2.4.7-217 in the Sprout modpack. One of our players would cause the server to crash (actually it just lagged out since I don't have a maximum tick time set) like this every time they logged on, the cause became very clear once I looked at the chunk file containing the chunk they were in: 21,000 EntityPacketChaos.
The option to remove the Entity packets on world load doesn't actually work (unless maybe they're in spawn chunks or other chunks that have been forced loaded as the server starts), since it iterates through the loaded entities. The EntityPacketChaos on my server were in a chunk that would not be loaded until a player moved close enough to load the chunk they were in.
I managed to fix this issue by turning on the "Direct Transfer" config option and writing a quick mod to listen to the EntityJoinWorldEvent, cancelling it for all EntityPacketChaos.
I still have no idea how 21k EntityPacketChaos managed to spawn, but it shouldn't be an issue with direct transfer turned on now.
edit: I specified the wrong entity name, it's fixed now
This kind of error is extremely hard to track down. I think I'll just make the node packets despawn on world load. That should prevent this from happening again.