New chunk generation crash issue with BYG 1.1.5 (1.16.3/1.16.4) on Forge 31.1.1 (1.16.4)
solarblindfull opened this issue · 16 comments
Hello !
Thank very much for this amazing mod !
I'm on Forge 31.1.1 for Minecraft 1.16.4. Unfortunately, I encounter a big chunk generation issue with BYG (1.1.5 version for 1.16.3/1.16.4) as you can see in the lastest log below. The crash occurs in singleplayer and in my personnal server too (same error) that leads to a world corruption (can't play this world ever again).
Lastest server log
[01déc.2020 22:46:22.050] [Worker-Main-136/FATAL] [net.minecraftforge.common.ForgeMod/]: Preparing crash report with UUID 25a7d2ed-cc0e-4d93-bff0-3f4cf1e0f828
[01déc.2020 22:46:22.054] [Server thread/ERROR] [net.minecraftforge.eventbus.EventBus/EVENTBUS]: Exception caught during firing event: net.minecraft.crash.ReportedException: Exception generating new chunk
Index: 11
Listeners:
0: NORMAL
1: ASM: net.quetzi.morpheus.helpers.MorpheusEventHandler@54777505 worldTickEvent(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
2: ASM: class com.wonderfulenchantments.enchantments.PhoenixDiveEnchantment onUpdate(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
3: ASM: class insane96mcp.longerdays.WorldTick onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
4: net.minecraftforge.eventbus.EventBus$$Lambda$2740/1328199540@b4498f
5: ASM: class com.wonderfulenchantments.enchantments.DodgeEnchantment updateEntitiesKnockBackImmunity(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
6: ASM: class vazkii.quark.oddities.magnetsystem.MagnetSystem tick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
7: ASM: vazkii.quark.automation.module.FeedingTroughModule@56285f31 buildTroughSet(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
8: ASM: vazkii.quark.automation.module.PistonsMoveTileEntitiesModule@5ae52c0e onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
9: ASM: vazkii.quark.tweaks.module.ImprovedSleepingModule@3a5bd8b7 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
10: ASM: com.natamus.zombiehorsespawn.events.ZombieHorseEvent@18c9671e onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
11: ASM: com.natamus.skeletonhorsespawn.events.SkeletonHorseEvent@10586f7 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
12: ASM: com.natamus.giantspawn.events.GiantEvent@5f072537 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V
java.util.concurrent.CompletionException: net.minecraft.crash.ReportedException: Exception generating new chunk
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:961)
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
at net.minecraft.world.chunk.ChunkTaskPriorityQueueSorter.func_219083_b(SourceFile:58)
at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213148_e(SourceFile:94)
at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213145_a(SourceFile:137)
at net.minecraft.util.concurrent.DelegatedTaskExecutor.run(SourceFile:105)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: net.minecraft.crash.ReportedException: Exception generating new chunk
at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:535)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522)
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)
... 11 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at net.minecraft.world.chunk.IChunk.func_217308_a(IChunk.java:138)
at net.minecraft.world.chunk.ChunkPrimerTickList.func_205362_a(SourceFile:59)
at net.minecraft.world.ITickList.func_205360_a(SourceFile:9)
at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.buildSurface(CanyonSB.java:114)
at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.func_205610_a_(CanyonSB.java:17)
at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder.func_215450_a(SourceFile:27)
at net.minecraft.world.biome.Biome.func_206854_a(Biome.java:303)
at com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator.func_225551_a_(ErrorTerrainGenerator.java:217)
at net.minecraft.world.chunk.ChunkStatus.lambda$static$6(ChunkStatus.java:63)
at net.minecraft.world.chunk.ChunkStatus$ISelectiveWorker.doWork(ChunkStatus.java:240)
at net.minecraft.world.chunk.ChunkStatus.func_223198_a(ChunkStatus.java:198)
at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:524)
... 14 more
[01déc.2020 22:46:22.056] [Server thread/ERROR] [net.minecraft.server.MinecraftServer/]: Encountered an unexpected exception
java.util.concurrent.CompletionException: net.minecraft.crash.ReportedException: Exception generating new chunk
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_202]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_202]
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:961) ~[?:1.8.0_202]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926) ~[?:1.8.0_202]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) ~[?:1.8.0_202]
at net.minecraft.world.chunk.ChunkTaskPriorityQueueSorter.func_219083_b(SourceFile:58) ~[?:?]
at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213148_e(SourceFile:94) ~[?:?]
at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213145_a(SourceFile:137) ~[?:?]
at net.minecraft.util.concurrent.DelegatedTaskExecutor.run(SourceFile:105) ~[?:?]
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) ~[?:1.8.0_202]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_202]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_202]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[?:1.8.0_202]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_202]
Caused by: net.minecraft.crash.ReportedException: Exception generating new chunk
at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:535) ~[?:?]
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[?:?]
at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) ~[?:?]
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ~[?:1.8.0_202]
... 11 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at net.minecraft.world.chunk.IChunk.func_217308_a(IChunk.java:138) ~[?:?]
at net.minecraft.world.chunk.ChunkPrimerTickList.func_205362_a(SourceFile:59) ~[?:?]
at net.minecraft.world.ITickList.func_205360_a(SourceFile:9) ~[?:?]
at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.buildSurface(CanyonSB.java:114) ~[byg:1.1.5]
at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.func_205610_a_(CanyonSB.java:17) ~[byg:1.1.5]
at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder.func_215450_a(SourceFile:27) ~[?:?]
at net.minecraft.world.biome.Biome.func_206854_a(Biome.java:303) ~[?:?]
at com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator.func_225551_a_(ErrorTerrainGenerator.java:217) ~[immersive_portals:0.9]
at net.minecraft.world.chunk.ChunkStatus.lambda$static$6(ChunkStatus.java:63) ~[?:?]
at net.minecraft.world.chunk.ChunkStatus$ISelectiveWorker.doWork(ChunkStatus.java:240) ~[?:?]
at net.minecraft.world.chunk.ChunkStatus.func_223198_a(ChunkStatus.java:198) ~[?:?]
at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:524) ~[?:?]
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[?:?]
at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) ~[?:?]
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ~[?:1.8.0_202]
... 11 more
The issue is random when I play in the world, even if I stay near the spawn. It seems that the "CanyonSB" biome type is responsible.
I play with Quark and Biome'O Plenty mods (lastest versions).
Can you see what's wrong please ?
Thank very much for your attention and have a good day !
Closing. use this if forge didnt fix it already: https://www.curseforge.com/minecraft/mc-mods/chocolate-fix
After some investigation I found out that the surface builder crash is due to CanyonSB calling schedule tick to a block under y level 0
https://github.com/CorgiTaco/BYG/blob/Fabric-1.16.X/src/main/java/corgiaoc/byg/common/world/surfacebuilder/overworld/CanyonSB.java#L114
Because alternate3/4 dimension has sea level 0 it will cause it to schedule a y=-1 blockpos and cause array out of bound exception
@qouteall why dont you leave the surface builder method empty? Im assuming that these dimensions are empty space so that would only make sense? And yes ill patch this on my end ig but even then my biome should only be in the overworld but mojang haddddd to do this nonsense in 1.16.4 >:(
I changed the alternate dimension sea level to 63 (the same as superflat) and it will probably be fixed. (This also make the chaos dimension to have more floating waters which makes it more chaos)
Which surface builder method is empty?
@qouteall dont use this method at all:
Just leave it empty tbh? Or create a public static method that will never call modded biomes? Idk just some suggestions to ensure this doesnt happen w/ anyone else
Well, it needs to build the surface or the chaos dimension will only have stone. I added a try catch so it won't crash if other worldgen issue happens
Wow ! That's quick ! Thank for your reply.
I've Immersive Portal, Undergarden, Bumblezone and World Blender installed. The crash occurs in the overworld even before I generate the dimensions or a portal (except global portal for Dimension Stacking with the nether)
Immersive Portals is known to cause issues w/ my surface builders. I'll open a report to them. Also sounds to me you had your chunks corrupted and the biomes switched around.
com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator
Hmm
It's weird ! I don't even use this dimension because of the compatibilities issues
Immersive Portals is known to cause issues w/ my surface builders. I'll open a report to them. Also sounds to me you had your chunks corrupted and the biomes switched around.
Thank for the details. So Immersive portals causes this corruption. I'll open an issue on their GitHub too. Thank.