Lithium (Fabric)

Lithium (Fabric)

22M Downloads

Exception thrown while saving oversized chunks

jellysquid3 opened this issue ยท 7 comments

commented

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]
commented

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
commented

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?

commented

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.

commented

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.

commented

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.

commented

The world that reproduced the issue for me (some random world that probably was upgraded from 1.16) the crash no longer occurs.

commented

The fix has been released with Lithium 0.5.2.