Server stops ticking when loading structure from a datapack mod
Skizzme opened this issue ยท 8 comments
Describe the bug
There is not an error in the console output, but the server stops ticking. I was able to track it down to something with the ThreadExecutor of the server where it would not continue onto the next tick. I don't know if this mod modifies the default behaviour of the executor or not however.
To Reproduce
Steps to reproduce the behavior:
This issue seems to occur when loading structures for the Legends Untold modpack, as it occurs anytime a player gets close to one of the structures for the first time in a world.
Expected behavior
Not to stop ticking
Runtime info (please complete the following information):
- OS: Windows 11 & Linux
- Minecraft version: 1.21.1
- Mod version: 0.3.0 alpha 0.320
Other mods[
list
Checklist
- I am using the official version of the mod.
- I tried the latest development version but the issue persists. (latest for 1.21.1)
- I searched for similar open issues and could not find an existing bug report on this.
After some more investigation is seems that there was an error from another mod being suppressed by this one, which I'm guessing was causing the ThreadExecutor to have issues and then freeze the server.
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "org.betterx.wover.biome.impl.BiomeBootstrapContextImpl.prepareTags(org.betterx.wover.tag.api.event.context.TagBootstrapContext)" because "context" is null at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?] at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?] at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?] at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507) ~[?:?] at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491) ~[?:?] at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073) ~[?:?] at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035) ~[?:?] at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187) ~[?:?] Caused by: java.lang.NullPointerException: Cannot invoke "org.betterx.wover.biome.impl.BiomeBootstrapContextImpl.prepareTags(org.betterx.wover.tag.api.event.context.TagBootstrapContext)" because "context" is null at knot/org.betterx.wover.biome.impl.BiomeManagerImpl.onBootstrapTags(BiomeManagerImpl.java:95) ~[wover-biome-21.0.13-ecfa0e39366be3d1.jar:?] at knot/org.betterx.wover.tag.impl.TagRegistryImpl.lambda$emitLoadEvent$0(TagRegistryImpl.java:95) ~[wover-tag-21.0.13-75893af4281a3b83.jar:?] at knot/org.betterx.wover.events.impl.EventImpl.lambda$emit$0(EventImpl.java:15) ~[wover-events-21.0.13-9c200a761df289a9.jar:?] at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] at knot/org.betterx.wover.events.impl.EventImpl.emit(EventImpl.java:15) ~[wover-events-21.0.13-9c200a761df289a9.jar:?] at knot/org.betterx.wover.tag.impl.TagRegistryImpl.emitLoadEvent(TagRegistryImpl.java:95) ~[wover-tag-21.0.13-75893af4281a3b83.jar:?] at knot/org.betterx.wover.tag.impl.TagManagerImpl.didLoadTagMap(TagManagerImpl.java:108) ~[wover-tag-21.0.13-75893af4281a3b83.jar:?] at knot/net.minecraft.class_3503.modify$efb000$wover-tag$wover_modifyTags(class_3503.java:1025) ~[server-intermediary.jar:?] at knot/net.minecraft.class_3503.method_33176(class_3503.java:128) ~[server-intermediary.jar:?] at knot/net.minecraft.class_3505.method_33181(class_3505.java:46) ~[server-intermediary.jar:?] at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] ... 6 more
this is the log up to the point where the server stops ticking:
https://pastebin.com/NL6L8gNp
It is unlikely to be our issue. One of your worldgen mod is probably dead.
Please provide a watchdog crash report. And try reproduce without C2ME.
here is the watchdog crash report:
https://pastebin.com/78GFD3y5
i have tried to do exactly the same thing without c2me, and while there is still the error (the one i posted earlier), the server does not stop ticking entirely and only the other mod fails. the world gen mod that is causing the issues is BetterNether.
It looks like a duplicate of #236 at this point.
We have tried to communicate with their team in the past for supporting threaded worldgen and made changes, but they eventually reverted the change we made.
There's no workaround on our side for 1.21.1+.
I see, my apologies for not finding that earlier.
I have discovered that the issue is more directly caused by the WorldWeaver mod, which is depended on by BCLib, which is required by BetterNether. I was able to recreated the same issue without BetterNether or BCLib, only WorldWeaver. However I think you already know this as they are all developed by the same team.
Might I suggest adding these to the list of mods that C2ME is incompatible with?