Powah! (Rearchitected)

Powah! (Rearchitected)

3M Downloads

1.18.2 - Energy Cables causing Save Issues

JackTWing opened this issue ยท 1 comments

commented

Version: (make sure you are on the latest version before reporting):

  • Minecraft: 1.18.2
  • Forge: 1.18.2 - 40.2.10
  • Powah: 1.18.2 - 3.0.2

Issue description:

The world does save, but it throws a bunch of errors in the log and takes longer to shut down. Occasionally, one of these errors causes an area to become unloadable until one uses commands to remove the offending block.
...

Steps to reproduce:

Load up a modded 1.18.2 world on a server, and place a bunch of cables (build something complicated, bigger than just one chunk), then try to stop the server
...

Is this a crash?, please include it here: (Recommended to use Gist)

Here is the log:

14:25:24 [Error] [minecraft/ChunkMap]: Failed to save chunk [-7, 69]
java.util.concurrent.CompletionException: java.lang.RuntimeException: Cable added to position BlockPos{x=-97, y=-30, z=1117}, but there was already one there?
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {}
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?] {}
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649) ~[?:?] {}
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}
at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading}
at net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:157) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.m_6367_(ServerChunkCache.java:542) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading}
at net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:131) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.m_7245_(ServerChunkCache.java:550) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading}
at net.minecraft.util.thread.BlockableEventLoop.m_18701_(BlockableEventLoop.java:140) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.level.ServerChunkCache.m_7587_(ServerChunkCache.java:129) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.level.Level.m_6522_(Level.java:169) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:observable.common.json:LevelMixin,pl:mixin:A}
at net.minecraft.world.level.LevelReader.m_46819_(LevelReader.java:123) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,re:classloading}
at net.minecraft.world.level.Level.m_6325_(Level.java:164) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:observable.common.json:LevelMixin,pl:mixin:A}
at net.minecraft.world.level.Level.m_8055_(Level.java:390) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:observable.common.json:LevelMixin,pl:mixin:A}
at me.desht.pneumaticcraft.common.block.entity.KeroseneLampBlockEntity.isLampLight(KeroseneLampBlockEntity.java:219) ~[pneumaticcraft-repressurized-1.18.2-3.6.0-19.jar%2393!/:1.18.2-3.6.0-19] {re:classloading}
at me.desht.pneumaticcraft.common.block.entity.KeroseneLampBlockEntity.m_7651_(KeroseneLampBlockEntity.java:212) ~[pneumaticcraft-repressurized-1.18.2-3.6.0-19.jar%2393!/:1.18.2-3.6.0-19] {re:classloading}
at java.util.HashMap$Values.forEach(HashMap.java:1065) ~[?:?] {}
at net.minecraft.world.level.chunk.LevelChunk.m_187957_(LevelChunk.java:553) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading,xf:fml:xaerominimap:xaero_chunkclass}
at net.minecraft.server.level.ServerLevel.m_8712_(ServerLevel.java:865) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:observable.common.json:ServerLevelMixin,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}
at net.minecraft.server.level.ChunkMap.m_202998_(ChunkMap.java:485) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:ars_nouveau.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:securitycraft.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:railways-common.mixins.json:conductor_possession.ChunkMapMixin,pl:mixin:A}
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?] {}
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}
at net.minecraft.server.level.ChunkMap.m_140353_(ChunkMap.java:455) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:ars_nouveau.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:securitycraft.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:railways-common.mixins.json:conductor_possession.ChunkMapMixin,pl:mixin:A}
at net.minecraft.server.level.ChunkMap.m_140280_(ChunkMap.java:426) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:ars_nouveau.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:securitycraft.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:railways-common.mixins.json:conductor_possession.ChunkMapMixin,pl:mixin:A}
at net.minecraft.server.level.ServerChunkCache.m_201698_(ServerChunkCache.java:313) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_7041_(MinecraftServer.java:603) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.dedicated.DedicatedServer.m_7041_(DedicatedServer.java:543) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:717) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_177918_(MinecraftServer.java:261) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:833) [?:?] {re:mixin}
Caused by: java.lang.RuntimeException: Cable added to position BlockPos{x=-97, y=-30, z=1117}, but there was already one there?
at owmii.powah.block.cable.CableNet.addCable(CableNet.java:23) ~[Powah-3.0.2-beta.jar%2394!/:?] {re:classloading}
at owmii.powah.block.cable.CableTile.m_6339_(CableTile.java:52) ~[Powah-3.0.2-beta.jar%2394!/:?] {re:classloading}
at net.minecraft.world.level.chunk.LevelChunk.m_142169_(LevelChunk.java:345) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading,xf:fml:xaerominimap:xaero_chunkclass}
at net.minecraft.world.level.chunk.storage.ChunkSerializer.m_196900_(ChunkSerializer.java:414) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,re:classloading,pl:mixin:APP:railways-common.mixins.json:ChunkSerializerMixin,pl:mixin:APP:architectury.mixins.json:MixinChunkSerializer,pl:mixin:A}
at net.minecraft.world.level.chunk.LevelChunk.m_62952_(LevelChunk.java:417) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:classloading,xf:fml:xaerominimap:xaero_chunkclass}
at net.minecraft.server.level.ChunkMap.m_202988_(ChunkMap.java:659) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:ars_nouveau.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:securitycraft.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:railways-common.mixins.json:conductor_possession.ChunkMapMixin,pl:mixin:A}
at com.mojang.datafixers.util.Either.lambda$mapLeft$0(Either.java:162) ~[datafixerupper-4.1.27.jar%2326!/:?] {re:mixin}
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-4.1.27.jar%2326!/:?] {}
at com.mojang.datafixers.util.Either.mapLeft(Either.java:162) ~[datafixerupper-4.1.27.jar%2326!/:?] {re:mixin}
at net.minecraft.server.level.ChunkMap.m_202985_(ChunkMap.java:643) ~[server-1.18.2-20220404.173914-srg.jar%23114!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:ars_nouveau.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:securitycraft.mixins.json:camera.ChunkMapMixin,pl:mixin:APP:railways-common.mixins.json:conductor_possession.ChunkMapMixin,pl:mixin:A}
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?] {}
... 28 more

It continues like this for a bunch more chunks.

commented

This is the fault of PneumaticCraft for loading a chunk while it is being unloaded.

PS: I don't have time to support 1.18.2, unfortunately.