Exception thrown while saving oversized chunks
jellysquid3 opened this issue ยท 7 comments
Lithium is unable to handle oversized chunks correctly (possibly due to a problem with the compactor?) Trying to save oversized chunks results in the following exception being thrown and the chunk not being saved:
java.lang.IllegalStateException: Cannot grow
at me.jellysquid.mods.lithium.common.world.chunk.LithiumHashPalette.computeEntry(LithiumHashPalette.java:69) ~[lithium-fabric-mc1.16.1-0.5.0.jar:?]
at me.jellysquid.mods.lithium.common.world.chunk.LithiumHashPalette.method_12291(LithiumHashPalette.java:58) ~[lithium-fabric-mc1.16.1-0.5.0.jar:?]
at net.minecraft.class_3508.compact(class_3508.java:557) ~[intermediary-server.jar:?]
at net.minecraft.class_2841.method_12330(class_2841.java:1099) ~[intermediary-server.jar:?]
at net.minecraft.class_2852.method_12410(class_2852.java:261) ~[intermediary-server.jar:?]
at net.minecraft.class_3898.method_17228(class_3898.java:716) ~[intermediary-server.jar:?]
at net.minecraft.class_3898.method_18843(class_3898.java:443) ~[intermediary-server.jar:?]
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:670) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456) ~[?:1.8.0_252]
at net.minecraft.class_3898.method_20605(class_3898.java:424) ~[intermediary-server.jar:?]
at net.minecraft.class_3898.method_17233(class_3898.java:401) ~[intermediary-server.jar:?]
at net.minecraft.class_3215.method_12127(class_3215.java:339) ~[intermediary-server.jar:?]
at net.minecraft.class_3218.method_18765(class_3218.java:347) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:873) ~[intermediary-server.jar:?]
at net.minecraft.class_3176.method_3813(class_3176.java:306) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:813) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.handler$zdn000$modifiedRunLoop(MinecraftServer.java:3296) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:653) ~[intermediary-server.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:256) ~[intermediary-server.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
This issue is causing chunk saving to fail in high-risk areas, such as chunks with many player-created chests or entities. Not a good situation. We need to fix the problem as soon as possible or disable the problematic patches. As far as I can tell, this issue only started occurring after the update to Minecraft 1.16.
Players can work around the problem by disabling the broken patch in their configuration file:
mixin.chunk.palette=false
This issue is causing chunk saving to fail in high-risk areas, such as chunks with many player-created chests or entities.
Does this allow for the written book-based duplication exploit mentioned by SalC1 here?
If anyone has instructions on how to reproduce this, or can provide a world download where the issue occurs after loading the world, please post them here.
I will create a world with the written book exploit that I know of. I will supply the world download when finished.
Edit 1 is no longer relevant.
Edit 3: WARNING: World may be large. Please extract before putting in "saves" folder.
book dupe world.zip
Edit 4: Issue has been untested in this world.
The issue probably isn't about "oversized" chunks but chunk sections that for some reason don't have the normal air in their palette.
I believe 202419e fixes this issue.
The world that reproduced the issue for me (some random world that probably was upgraded from 1.16) the crash no longer occurs.