MinimallyCorrect / TickThreading

Historical multi-threaded minecraft by @LunNova. Performance over correctness. What could go wrong? Way too much.
https://jenkins.nallar.me/job/TickThreading/
MIT License
141 stars 44 forks source link

1.6.4 TT Errors #1258

Open Zilacon opened 7 years ago

Zilacon commented 7 years ago

Alright so trying to scan through my logs that ive ignored for a long time has proven difficult as most of them are in GB sizes Linux just said "I aint loadin dat!" but i managed to get a few from some smaller logs so this is what i managed to get.

The MAIN problem:

09-22 00:58:57 [SEVERE] [TickThreading] Exception in main tick loop
java.lang.NullPointerException
 at thermalexpansion.part.conduit.item.ConduitItem.inputItems(ConduitItem.java:121)
 at thermalexpansion.part.conduit.item.ConduitItem.doOutput(ConduitItem.java:105)
 at thermalexpansion.part.conduit.item.GridItem.doGridUpdate(GridItem.java:63)
 at thermalexpansion.part.conduit.GridTickHandler.tickEnd(GridTickHandler.java:76)
 at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
 at nallar.tickthreading.util.WrappedScheduledTickHandler.tickEnd(WrappedScheduledTickHandler.java:27)
 at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:80)
 at cpw.mods.fml.common.FMLCommonHandler.onPostServerTick_cpw_mods_fml_common_FMLCommonHandler_onPreServerTick_p0(FMLCommonHandler.java:274)
 at cpw.mods.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java)
 at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:311)
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:164)
 at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

This also has a "fluid" version to it. This basically happens whenever a lot of machines, conduits, or fluiducts are connected to machines and ticking. When a large amount start to tick this error starts and all of TE basically disables itself. No RF (Even for other mods like Mekanism, EnderIO, or Big Reactors, ETC) And no itemducts or fluiducts process any items or fluids. The server needs to be restarted to fix this, which will then happen again and again until the base that is causing the issue is found.

Some other errors that have less of an impact but are very spammy.

09-21 12:54:04 [SEVERE] [TickThreading] Exception ticking world S-2/5
java.lang.RuntimeException: java.lang.NullPointerException
 at appeng.sided.AEGenericTick.tickEnd(AEGenericTick.java:93)
 at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
 at nallar.tickthreading.util.WrappedScheduledTickHandler.tickEnd(WrappedScheduledTickHandler.java:27)
 at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:80)
 at cpw.mods.fml.common.FMLCommonHandler.onPostWorldTick_cpw_mods_fml_common_FMLCommonHandler_onPreServerTick_p0(FMLCommonHandler.java:282)
 at cpw.mods.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java)
 at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:480)
 at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:606)
 at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:40)
 at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)
Caused by: java.lang.NullPointerException
 at appeng.sided.AEGenericTick.tickEnd(AEGenericTick.java:91)
 ... 9 more

No idea what causes that one.

09-21 09:07:40 [SEVERE] [ForgeModLoader] A TileEntity type powercrystals.minefactoryreloaded.tile.rednet.TileEntityRedNetEnergy at S-1/4,86,69,1909 has throw an exception trying to write state. It will not persist. Report this to the mod author
java.lang.ArithmeticException: / by zero
 at powercrystals.minefactoryreloaded.tile.rednet.RedstoneEnergyNetwork.getNodeShare(RedstoneEnergyNetwork.java:44)
 at powercrystals.minefactoryreloaded.tile.rednet.TileEntityRedNetEnergy.func_70310_b(TileEntityRedNetEnergy.java:322)
 at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75820_a(ThreadedChunkLoader.java:355)
 at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75816_a(ThreadedChunkLoader.java:203)
 at net.minecraft.world.gen.ChunkProviderServer.saveChunk(ThreadedChunkProvider.java:784)
 at net.minecraft.world.gen.ChunkProviderServer.finalizeUnload(ThreadedChunkProvider.java:255)
 at net.minecraft.world.gen.ChunkProviderServer.handleUnloadQueue(ThreadedChunkProvider.java:230)
 at net.minecraft.world.gen.ChunkProviderServer.handleUnloadQueue(ThreadedChunkProvider.java:215)
 at net.minecraft.world.gen.ChunkProviderServer.tick_net_minecraft_world_gen_ChunkProviderServer_tick_p0(ThreadedChunkProvider.java:186)
 at net.minecraft.world.gen.ChunkProviderServer.tick(ThreadedChunkProvider.java)
 at net.minecraft.world.WorldServer.func_72835_b_net_minecraft_world_WorldServer_tick_p0(WorldServer.java:411)
 at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java)
 at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:476)
 at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:606)
 at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:40)
 at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)

This ones similar to the TE conduits but doesn't actually "disable" anything it just spams the console.

09-21 13:16:17 [INFO] [Minecraft] Loaded player file for SkiTheEpic
09-21 13:16:17 [SEVERE] [Minecraft]  at tconstruct.util.player.TPlayerHandler.updatePlayerInventory(TPlayerHandler.java:233)
09-21 13:16:17 [SEVERE] [Minecraft]  at tconstruct.util.player.TPlayerHandler.updatePlayerInventory(TPlayerHandler.java:221)
09-21 13:16:17 [SEVERE] [Minecraft]  at tconstruct.util.player.TPlayerHandler.onPlayerChangedDimension(TPlayerHandler.java:264)
09-21 13:16:17 [SEVERE] [Minecraft]  at cpw.mods.fml.common.registry.GameRegistry.onPlayerChangedDimension(GameRegistry.java:445)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.management.ServerConfigurationManager.moveToWorld(ServerConfigurationManager.java:802)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.management.ServerConfigurationManager.moveToWorld(ServerConfigurationManager.java:648)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer.teleport(CraftPlayer.java:411)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity.teleport(CraftEntity.java:406)
09-21 13:16:17 [SEVERE] [Minecraft]  at me.Opgesnoven.sj.Main.onJoin(Main.java:131)
09-21 13:16:17 [SEVERE] [Minecraft]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
09-21 13:16:17 [SEVERE] [Minecraft]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
09-21 13:16:17 [SEVERE] [Minecraft]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
09-21 13:16:17 [SEVERE] [Minecraft]  at java.lang.reflect.Method.invoke(Method.java:606)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:435)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
09-21 13:16:17 [SEVERE] [Minecraft]  at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.management.ServerConfigurationManager.func_72377_c(ServerConfigurationManager.java:325)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.management.ServerConfigurationManager.func_72355_a(ServerConfigurationManager.java:186)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.network.NetLoginHandler.completeConnection(NetLoginHandler.java:223)
09-21 13:16:17 [SEVERE] [Minecraft]  at cpw.mods.fml.common.network.FMLNetworkHandler.handleClientConnection(FMLNetworkHandler.java:168)
09-21 13:16:17 [SEVERE] [Minecraft]  at cpw.mods.fml.common.network.FMLNetworkHandler.onConnectionReceivedFromClient(FMLNetworkHandler.java:121)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.network.NetLoginHandler.func_72529_d(NetLoginHandler.java:198)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.network.NetLoginHandler.func_72532_c(NetLoginHandler.java:82)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.ServerListenThread.func_71766_a(ServerListenThread.java:57)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:33)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:396)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:275)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:164)
09-21 13:16:17 [SEVERE] [Minecraft]  at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
09-21 13:16:17 [SEVERE] [ForgeModLoader] A critical error occured handling the onPlayerChangedDimension event with player tracker tconstruct.util.player.TPlayerHandler
java.lang.NullPointerException
 at tconstruct.util.player.TPlayerHandler.onPlayerChangedDimension(TPlayerHandler.java:271)
 at cpw.mods.fml.common.registry.GameRegistry.onPlayerChangedDimension(GameRegistry.java:445)
 at net.minecraft.server.management.ServerConfigurationManager.moveToWorld(ServerConfigurationManager.java:802)
 at net.minecraft.server.management.ServerConfigurationManager.moveToWorld(ServerConfigurationManager.java:648)
 at org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer.teleport(CraftPlayer.java:411)
 at org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity.teleport(CraftEntity.java:406)
 at me.Opgesnoven.sj.Main.onJoin(Main.java:131)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:606)
 at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:435)
 at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
 at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
 at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
 at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java)
 at net.minecraft.server.management.ServerConfigurationManager.func_72377_c(ServerConfigurationManager.java:325)
 at net.minecraft.server.management.ServerConfigurationManager.func_72355_a(ServerConfigurationManager.java:186)
 at net.minecraft.network.NetLoginHandler.completeConnection(NetLoginHandler.java:223)
 at cpw.mods.fml.common.network.FMLNetworkHandler.handleClientConnection(FMLNetworkHandler.java:168)
 at cpw.mods.fml.common.network.FMLNetworkHandler.onConnectionReceivedFromClient(FMLNetworkHandler.java:121)
 at net.minecraft.network.NetLoginHandler.func_72529_d(NetLoginHandler.java:198)
 at net.minecraft.network.NetLoginHandler.func_72532_c(NetLoginHandler.java:82)
 at net.minecraft.server.ServerListenThread.func_71766_a(ServerListenThread.java:57)
 at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:33)
 at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:396)
 at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
 at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:275)
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:164)
 at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

This will literally spam the console every time a player joins the server. 100% guarantee if tinkers construct is installed on a server with a plugin that sends players to a specific location like SpawnJoin / Essentials.

09-21 20:48:22 [SEVERE] [TickThreading] Exception while updating block neighbours in S-4/8 at 971, 57, -1793
java.lang.NullPointerException
 at crazypants.enderio.conduit.power.PowerConduit.onNeighborBlockChange(PowerConduit.java:384)
 at crazypants.enderio.conduit.TileConduitBundle.onNeighborBlockChange(TileConduitBundle.java:272)
 at crazypants.enderio.conduit.BlockConduitBundle.func_71863_a(BlockConduitBundle.java:670)
 at net.minecraft.world.World.func_72821_m(World.java:302)
 at net.minecraft.world.World.func_72898_h(World.java:1129)
 at crazypants.enderio.conduit.AbstractConduit.updateNetwork(AbstractConduit.java:380)
 at crazypants.enderio.conduit.AbstractConduit.updateEntity(AbstractConduit.java:327)
 at crazypants.enderio.conduit.TileConduitBundle.func_70316_g(TileConduitBundle.java:203)
 at nallar.tickthreading.minecraft.tickregion.TileEntityTickRegion.doTick(TileEntityTickRegion.java:173)
 at nallar.tickthreading.minecraft.tickregion.TickRegion.run(TickRegion.java:36)
 at nallar.tickthreading.minecraft.tickregion.TileEntityTickRegion.run(TileEntityTickRegion.java:126)
 at nallar.tickthreading.minecraft.ThreadManager$DelayableRunnable.run(ThreadManager.java:193)
 at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:40)
 at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)

Another power cable error, this ones like the RedNetCables.

09-22 00:16:09 [SEVERE] [TickThreading] Exception ticking world S-3/399
java.lang.NullPointerException
 at micdoodle8.mods.galacticraft.core.tick.GCCoreTickHandlerServer.tickEnd(GCCoreTickHandlerServer.java:205)
 at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
 at nallar.tickthreading.util.WrappedScheduledTickHandler.tickEnd(WrappedScheduledTickHandler.java:27)
 at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:80)
 at cpw.mods.fml.common.FMLCommonHandler.onPostWorldTick_cpw_mods_fml_common_FMLCommonHandler_onPreServerTick_p0(FMLCommonHandler.java:282)
 at cpw.mods.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java)
 at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:480)
 at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:606)
 at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:40)
 at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)

This one and:

09-21 09:21:58 [SEVERE] [TickThreading] Exception ticking world Spawn/22
java.util.NoSuchElementException
 at java.util.LinkedList$ListItr.next(LinkedList.java:888)
 at micdoodle8.mods.galacticraft.api.transmission.compatibility.UniversalNetwork.doTickStartCalc(UniversalNetwork.java:226)
 at micdoodle8.mods.galacticraft.api.transmission.compatibility.UniversalNetwork.tickEnd(UniversalNetwork.java:184)
 at micdoodle8.mods.galacticraft.core.tick.GCCoreTickHandlerServer.tickEnd(GCCoreTickHandlerServer.java:205)
 at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
 at nallar.tickthreading.util.WrappedScheduledTickHandler.tickEnd(WrappedScheduledTickHandler.java:27)
 at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:80)
 at cpw.mods.fml.common.FMLCommonHandler.onPostWorldTick_cpw_mods_fml_common_FMLCommonHandler_onPreServerTick_p0(FMLCommonHandler.java:282)
 at cpw.mods.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java)
 at net.minecraft.server.MinecraftServer.doWorldTick(MinecraftServer.java:480)
 at nallar.patched.server.PatchMinecraftServer$TickRunnable.run(PatchMinecraftServer.java:606)
 at nallar.tickthreading.minecraft.ThreadManager$1.run(ThreadManager.java:40)
 at nallar.tickthreading.util.FakeServerThread.run(FakeServerThread.java:16)

Will happen whenever ANY kind of energy api or plugin is attempting to send energy from one world to another with GC installed. So if i hooked up some GC solar panels on the moon, hooked them up to a TE Tesseract and use that energy flow to my home on an overworld through the tesseract BAM this error x 100+ times.

Basically a lot of energy/fluid/pipe problems im guessing they are all related in some way.

Zilacon commented 7 years ago

Any update on this?

DotOnTheWall commented 7 years ago

Hello nallar, I am a player on APOC and this issue is plaguing the server. Fixing it would make everyone on APOC extremely grateful. Our servers need to be constantly restarted due to this bug.

LunNova commented 7 years ago

Can you upload the mods folder from the pack you got those errors from? It's easier if I don't have to go searching for mod downloads without being entirely sure if I'm using the same version.

Zilacon commented 7 years ago

If you get the Technic Launcher it makes things easier as every server with the issue is downloadable from there.

Searchable packs: APOC AS 3.1.4, APOC YCC Official Packs: Attack of the B-team (1.0.12B), Tekkit Main (1.2.9G), Voltz (3.1.2), Hexxit (2.0.1C)

The main suspect for the TE (Energy/item/fluid) issues is the AS, YCC, TM packs. http://www.technicpack.net/download

Zilacon commented 7 years ago

Crickets

Zilacon commented 7 years ago

Here is the mods for Agrarian Skies: https://www.dropbox.com/s/q0attglrt3r0soc/AS-Mods.7z?dl=0

theresajayne commented 7 years ago

The issue is actually being caused by some mods (Thermal Expansion for one) not being thread safe,) TE uses global Static lists to process the power grids meaning that the global grid is not threadsafe, the 1.9 version of TE seems to not have the same setup but I may be wrong, The way to fix this is to patch the offending Mod or maybe in the latest version of TT allow the exclusion of some mods so they are processed in the original manner and not by the TT processing (it is unlikely that this can also be done because of the way TT changes the tick processing)