ExtraCells / ExtraCells2

ExtraCells 2
MIT License
136 stars 115 forks source link

TileChest.saveChanges() infinite recursion with HandlerItemFluid.persist() in onUpdateTick #610

Closed Pushhands closed 5 years ago

Pushhands commented 6 years ago

Forge Version: 14.23.5.2768 Applied Energistics Version: appliedenergistics2-rv6-stable-2.jar Extra Cells 2 Version: ExtraCells-1.12.2-2.6.1a.jar

Server runs in a loop continually crashing. Crash log is attached. Below is the server console showing the event exception to the crash notification:

14.10 16:50:06 [Server] Server thread/INFO [FML]: Unloading dimension -11325 14.10 16:50:09 [Server] Server thread/WARN [minecraft/MinecraftServer]: Can't keep up! Did the system time change, or is the server overloaded? Running 6335ms behind, skipping 126 tick(s) 14.10 16:50:16 [Server] Server thread/ERROR [FML]: Exception caught during firing event net.minecraftforge.fml.common.gameevent.TickEvent$ServerTickEvent@4fb934c1: 14.10 16:50:16 [Server] INFO net.minecraft.util.ReportedException: Ticking GridNode 14.10 16:50:16 [Server] INFO at appeng.me.cache.TickManagerCache.onUpdateTick(TickManagerCache.java:135) ~[TickManagerCache.class:?] 14.10 16:50:16 [Server] INFO at appeng.me.GridCacheWrapper.onUpdateTick(GridCacheWrapper.java:43) ~[GridCacheWrapper.class:?] 14.10 16:50:16 [Server] INFO at appeng.me.Grid.update(Grid.java:280) ~[Grid.class:?] 14.10 16:50:16 [Server] INFO at appeng.hooks.TickHandler.onTick(TickHandler.java:228) ~[TickHandler.class:?] 14.10 16:50:16 [Server] INFO at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_969_TickHandler_onTick_TickEvent.invoke(.dynamic) ~[?:?] 14.10 16:50:16 [Server] INFO at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?] 14.10 16:50:16 [Server] INFO at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?] 14.10 16:50:16 [Server] INFO at net.minecraftforge.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java:266) [FMLCommonHandler.class:?] 14.10 16:50:16 [Server] INFO at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:712) [MinecraftServer.class:?] 14.10 16:50:16 [Server] INFO at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?] 14.10 16:50:16 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181] 14.10 16:50:16 [Server] INFO Caused by: java.lang.StackOverflowError 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:16 [Server] INFO at extracells.inventory.cell.HandlerItemStorageFluid.persist(HandlerItemStorageFluid.java:420) ~[HandlerItemStorageFluid.class:?] 14.10 16:50:16 [Server] INFO at appeng.tile.storage.TileChest.saveChanges(TileChest.java:666) ~[TileChest.class:?] 14.10 16:50:18 [Multicraft] Skipped 2094 lines due to rate limit (30/s) 14.10 16:50:18 [Server] Server thread/INFO [FML]: Unloading dimension 0 14.10 16:50:18 [Server] Server thread/INFO [FML]: Unloading dimension -9999 14.10 16:50:18 [Server] Server thread/INFO [FML]: Unloading dimension 2 14.10 16:50:18 [Server] Server thread/INFO [FML]: Unloading dimension 3 14.10 16:50:18 [Server] Server thread/INFO [Actually Additions]: Unloaded WorldData! 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -30 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -20 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -21 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -15 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -22 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -29 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -13 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -18 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -19 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -16 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -17 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -31 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -37 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -35 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -34 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -38 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -43 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -32 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -28 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -41 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -33 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -39 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -40 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -42 14.10 16:50:18 [Server] Server thread/INFO [Galacticraft]: Unregistered Dimension: -36 14.10 16:50:19 [Multicraft] Server shut down (starting) 14.10 16:50:19 [Multicraft] Restarting crashed server in 5 seconds

crash-2018-10-14_16.50.16-server.txt

autaut03 commented 5 years ago

Same here. May I ask why was "critical" label removed?

autaut03 commented 5 years ago

WARNING: This will remove all ME chests from your world

For people encountering same problem, go to config/AppliedEnergistics2/AppliedEnergistics2.cfg and set MEChest from true to false under features -> storage. Then join your world, accept Forge warning. After world is loaded, revert the change.

BrockWS commented 5 years ago

I've rewritten the entire cell handling. The following dev build should fix the issue. Please read the notice. https://ci.brock.pw/job/ExtraCells2/job/ExtraCells2-RV6/7/