Supplementaries

Supplementaries

82M Downloads

Using a faucet to pull from the base of an Immersive Engineering tank creates an update loop.

D0CTOR-ZED opened this issue ยท 1 comments

commented

To replicate the crash: Build an IE multiblock tank. Place fluid in the tank (I used around 20 buckets). Place supplementaries faucet on a side of the base of the tank. Place a fluid container under the faucet (I used a metal barrel from IE). Turn on faucet.

I have part of the stacktrace below. Only part since the rest is just repeating the same 13 lines until a stack overflow is achieved.

net.minecraft.crash.ReportedException: Exception while updating neighbours
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:855) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:78) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) ~[?:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: java.lang.StackOverflowError
	at net.minecraft.world.World.func_190524_a(World.java:343) ~[?:?]
	at net.minecraft.world.World.func_195593_d(World.java:294) ~[?:?]
	at blusunrize.immersiveengineering.common.blocks.IEBaseTileEntity.markBlockForUpdate(IEBaseTileEntity.java:158) ~[immersiveengineering:?]
	at blusunrize.immersiveengineering.common.blocks.IEBaseTileEntity.markContainingBlockForUpdate(IEBaseTileEntity.java:149) ~[immersiveengineering:?]
	at blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartTileEntity.updateMasterBlock(MultiblockPartTileEntity.java:314) ~[immersiveengineering:?]
	at blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartTileEntity$MultiblockFluidWrapper.drain(MultiblockPartTileEntity.java:290) ~[immersiveengineering:?]
	at net.mehvahdjukaar.selene.fluids.SoftFluidHolder.copy(SoftFluidHolder.java:638) ~[selene:1.16.5-1.0]
	at net.mehvahdjukaar.supplementaries.block.tiles.FaucetBlockTile.tryExtract(FaucetBlockTile.java:190) ~[supplementaries:1.16.5-0.15.0]
	at net.mehvahdjukaar.supplementaries.block.tiles.FaucetBlockTile.updateContainedFluidVisuals(FaucetBlockTile.java:102) ~[supplementaries:1.16.5-0.15.0]
	at net.mehvahdjukaar.supplementaries.block.blocks.FaucetBlock.updateTileFluid(FaucetBlock.java:150) ~[supplementaries:1.16.5-0.15.0]
	at net.mehvahdjukaar.supplementaries.block.blocks.FaucetBlock.updateBlock(FaucetBlock.java:176) ~[supplementaries:1.16.5-0.15.0]
	at net.mehvahdjukaar.supplementaries.block.blocks.FaucetBlock.func_220069_a(FaucetBlock.java:167) ~[supplementaries:1.16.5-0.15.0]
	at net.minecraft.block.AbstractBlock$AbstractBlockState.func_215697_a(AbstractBlock.java:583) ~[?:?]
	at net.minecraft.world.World.func_190524_a(World.java:339) ~[?:?]
	at net.minecraft.world.World.func_195593_d(World.java:294) ~[?:?]
	at blusunrize.immersiveengineering.common.blocks.IEBaseTileEntity.markBlockForUpdate(IEBaseTileEntity.java:158) ~[immersiveengineering:?]
commented

I finally got around taking a look at this. I think I can provide a fix on my end but actually I believe the issue is on theirs since they shouldn't update their tile entity when it receives a FluidAction.SIMULATE. I'll try to make a pr or open an issue