Starlight (Fabric)

Starlight (Fabric)

17M Downloads

BCLib incompatibility with Starlight causes crash on world pregen

davidalb97 opened this issue ยท 3 comments

commented

I believe there is a an incompatibility between BCLib and Starlight, causing the server to crash.
Removing either BCLib or Starlight fixes the crash.
To cause the crash, BCLib, Starlight and one of either BetterEnd or BetterNether must be present.
No other mod causes this conflict with BCLib on my modpack.
I conducted multiple test pregeneration runs with the following command: execute in WORLD run pregen start 1990
for example, for the nether: execute in the_nether run pregen start 1990.
I created the same issue on BCLib's repo here.

Modlist:

Note: I am aware that new versions of BCLib are available, however, each test run takes days, making it difficult to run all tests with the latest version.

All test pregeneration runs:
BCLib + BetterEnd + Starlight (end pregen, crashed): https://pastebin.com/xycXvnAa
BCLib + BetterNether + Starlight (nether pregen, crashed): https://pastebin.com/NkLw41cx
BCLib + Starlight (overworld pregen, no crash): https://pastebin.com/yQHvLYGW
Starlight only (overworld pregen, no crash): https://pastebin.com/410rbs3T
All other mods in the modpack (overworld pregen, no crash): https://pastebin.com/4bYjg65x

Crash:

java.util.concurrent.CompletionException: net.minecraft.class_148: Feature placement
	at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1159) ~[?:?]
	at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
	at net.minecraft.class_3900.method_17634(class_3900.java:58) ~[intermediary-server.jar:?]
	at net.minecraft.class_3846.method_16907(class_3846.java:91) [intermediary-server.jar:?]
	at net.minecraft.class_3846.method_16900(class_3846.java:146) [intermediary-server.jar:?]
	at net.minecraft.class_3846.run(class_3846.java:102) [intermediary-server.jar:?]
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) [?:?]
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
	at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]
Caused by: net.minecraft.class_148: Feature placement
	at net.minecraft.class_3898.method_17225(class_3898.java:568) ~[intermediary-server.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[intermediary-server.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:550) ~[intermediary-server.jar:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
	... 11 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 2563 out of bounds for length 2049
	at it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap.get(Long2ObjectLinkedOpenHashMap.java:695) ~[intermediary-server.jar:?]
	at net.minecraft.class_3898.method_17255(class_3898.java:223) ~[intermediary-server.jar:?]
	at net.minecraft.class_3218.getAnyChunkImmediately(class_3218.java:2093) ~[intermediary-server.jar:?]
	at ca.spottedleaf.starlight.common.light.StarLightInterface.getAnyChunkNow(StarLightInterface.java:289) ~[%5BOptimization%5Dstarlight-1.0.0-RC3+fabric.1.17.x(Light%20engine%20optimization)%5BMODIFIED-matching-modrinth-version%5D.jar:?]
	at net.minecraft.class_3227.queueTaskForSection(class_3227.java:556) ~[intermediary-server.jar:?]
	at net.minecraft.class_3227.method_15513(class_3227.java:631) ~[intermediary-server.jar:?]
	at net.minecraft.class_2839.method_12010(class_2839.java:187) ~[intermediary-server.jar:?]
	at net.minecraft.class_3233.method_30092(class_3233.java:260) ~[intermediary-server.jar:?]
	at net.minecraft.class_1945.method_8652(class_1945.java:15) ~[intermediary-server.jar:?]
	at ru.bclib.util.BlocksHelper.setWithoutUpdate(BlocksHelper.java:47) ~[%5BLib%5Dbclib-0.5.1%5BBetterEnd%5D%5BBetterNether%5D%5BMODIFIED-FixedCrash%5D.jar:?]
	at ru.bclib.sdf.SDF.lambda$fillRecursiveIgnore$15(SDF.java:198) ~[%5BLib%5Dbclib-0.5.1%5BBetterEnd%5D%5BBetterNether%5D%5BMODIFIED-FixedCrash%5D.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at ru.bclib.sdf.SDF.fillRecursiveIgnore(SDF.java:197) ~[%5BLib%5Dbclib-0.5.1%5BBetterEnd%5D%5BBetterNether%5D%5BMODIFIED-FixedCrash%5D.jar:?]
	at ru.betterend.world.features.trees.PythadendronTreeFeature.leavesBall(PythadendronTreeFeature.java:186) ~[%5BWorld%5Dbetter-end-0.12.2%5BBclib%5D.jar:?]
	at ru.betterend.world.features.trees.PythadendronTreeFeature.branch(PythadendronTreeFeature.java:116) ~[%5BWorld%5Dbetter-end-0.12.2%5BBclib%5D.jar:?]
	at ru.betterend.world.features.trees.PythadendronTreeFeature.branch(PythadendronTreeFeature.java:132) ~[%5BWorld%5Dbetter-end-0.12.2%5BBclib%5D.jar:?]
	at ru.betterend.world.features.trees.PythadendronTreeFeature.method_13151(PythadendronTreeFeature.java:54) ~[%5BWorld%5Dbetter-end-0.12.2%5BBclib%5D.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:58) ~[intermediary-server.jar:?]
	at net.minecraft.class_2988.method_30384(class_2988.java:29) ~[intermediary-server.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at net.minecraft.class_2988.method_13151(class_2988.java:28) ~[intermediary-server.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:58) ~[intermediary-server.jar:?]
	at net.minecraft.class_2988.method_30384(class_2988.java:29) ~[intermediary-server.jar:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180) ~[?:?]
	at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) ~[?:?]
	at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at net.minecraft.class_2988.method_13151(class_2988.java:28) ~[intermediary-server.jar:?]
	at net.minecraft.class_2975.method_12862(class_2975.java:58) ~[intermediary-server.jar:?]
	at net.minecraft.class_1959.method_8702(class_1959.java:388) ~[intermediary-server.jar:?]
	at net.minecraft.class_2794.method_12102(class_2794.java:245) ~[intermediary-server.jar:?]
	at net.minecraft.class_2806.method_12151(class_2806.java:100) ~[intermediary-server.jar:?]
	at net.minecraft.class_2806.method_12154(class_2806.java:231) ~[intermediary-server.jar:?]
	at net.minecraft.class_3898.method_17225(class_3898.java:556) ~[intermediary-server.jar:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[intermediary-server.jar:?]
	at net.minecraft.class_3898.method_17224(class_3898.java:550) ~[intermediary-server.jar:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
	... 11 more
commented

Hi, could you warn users on curseforge & modrinth's mod page description that the 1.17.1 version will always be incompatible with BCLib?

commented
commented

Not to be backported to 1.17