Watchdog timeout caused by RF to NF Converter
Castone22 opened this issue ยท 5 comments
Version: 1.12.2-26.3.309
When we updated our server to this version, the RF to NF converter started causing a server watchdog timeout at 600s at server boot up.
Stack as follows
Thread: Server Watchdog
Stacktrace:
at net.minecraft.world.World.func_189509_E(World.java:224)
at net.minecraft.world.World.func_180495_p(World.java:904)
at net.minecraft.world.World.func_175623_d(World.java:229)
at futurepack.common.block.TileEntityRFtoNEConverter.func_73660_a(TileEntityRFtoNEConverter.java:69)
at net.minecraft.world.World.func_72939_s(World.java:1832)
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 directed the players of the server to this thread to attach any relevant information, my knowledge of their builds is rather limited.
I am unable to reproduce this crash in a minimal environment.
Modlist:
CodeChickenLib-1.12.2-3.2.0.345-universal.jar
CoFHCore-1.12.2-4.5.3.20-universal.jar
CoFHWorld-1.12.2-1.2.0.5-universal.jar
Futurepack-1.12.2-26.3.309.jar
Hwyla-1.8.26-B41_1.12.2.jar
jei_1.12.2-4.12.0.216.jar
jeiintegration_1.12.2-1.5.1.36.jar
JustEnoughResources-1.12.2-0.8.10.50.jar
LagGoggles-FORGE-1.12.2-4.1.jar
RedstoneFlux-1.12-2.0.2.3-universal.jar
ThermalDynamics-1.12.2-2.5.1.14-universal.jar
ThermalExpansion-1.12.2-5.5.0.29-universal.jar
ThermalFoundation-1.12.2-2.5.0.19-universal.jar
Forge version: 2764
I launched both a multiplayer server and a client, and placed a setup like this:
(Iron ingots/dusts loop between the Super Crusher and Neon Furnace, while power is supplied though a Creative Cell from Thermal Expansion, converted with the Flux Transformer.)
I also tested a Flux Transformer alone (at that point I didn't have the CoFH suite installed).
In no case did the server crash on startup. Further testing is needed, as the crash is most likely an interaction between mods.
Thats interesting, "func_175623_d" is isAirBlock, I did not experience any large lagg, do you use Sponge ?
I never thought about skyblock, good point. Should be fixed here: 26.3.400
I did a bit more digging, and was able to find the issue.
When the Flux Transformer is drawing more than 400RF/t, it occasionally attempts to cause nearby creepers to path towards itself. On line 69 of TileEntityRFtoNEConverter.java, you check for the lowest solid block by decreasing posY until you find one. Normally, this would not be an issue, but there is a certain case in which this can catastrophically freeze. Namely, if the chosen column has no solid blocks.
On the server that encountered this issue, one of the players choose to use issue #484 to break over a dozen chunks of bedrock and create a massive void that their base would float atop. This was able to trigger said freeze, since the update() method of a Flux Transformer got stuck on one of those void columns.
In a normal world, this would be very rare, but if your mod was ever put into a skyblock pack, (or a player uses a Flux Transformer in a personal void RFTools dimension,) this bug would trigger frequently.
Steps to reproduce
- Create a void superflat world
- Place a Flux Transformer set to over 400RF/t (not sure if it requires power input to trigger events, but I added a Creative Cell from Thermal Expansion as RF input to be safe)
- Make a separate island nearby (
/setblock ~ ~ ~ minecraft:stone
works to get a block to build off of) - Place a Creeper on the island, and watch as the server grinds to a halt.
The above screenshot shows the setup I used, including the creeper on a nearby island.