Game hangs at SodiumChunkManager:103 on Render Thread (1.16.4)
cavallium opened this issue ยท 3 comments
Reproduction Steps
Can't reproduce. It happens randomly after some hours of gameplay.
Installed mods: lithium, phosphor, sodium
Crash Report File
When the game hangs, jstack -l
prints the following stacktrace:
"Render thread" #1 prio=5 os_prio=0 cpu=501723,75ms elapsed=1080,86s tid=0x00007fc26c0680f0 nid=0x19120 runnable [0x00007fc2710ec000]
java.lang.Thread.State: RUNNABLE
at me.jellysquid.mods.sodium.client.util.collections.FixedLongHashTable.get(FixedLongHashTable.java:209)
at me.jellysquid.mods.sodium.client.world.SodiumChunkManager.method_16020(SodiumChunkManager.java:103)
at net.minecraft.class_634.method_11128(class_634.java:772)
at net.minecraft.class_2672.method_11528(class_2672.java:123)
at net.minecraft.class_2672.method_11054(class_2672.java:23)
at net.minecraft.class_2600.method_11072(class_2600.java:21)
at net.minecraft.class_2600$$Lambda$3656/0x00000008014bdf50.run(Unknown Source)
at net.minecraft.class_1255.method_18859(class_1255.java:144)
at net.minecraft.class_4093.method_18859(class_4093.java:23)
at net.minecraft.class_1255.method_16075(class_1255.java:118)
at net.minecraft.class_1255.method_5383(class_1255.java:103)
at net.minecraft.class_310.method_1523(class_310.java:1015)
at net.minecraft.class_310.method_1514(class_310.java:681)
at net.minecraft.client.main.Main.main(Main.java:215)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke([email protected]/Method.java:564)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224)
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke([email protected]/Method.java:564)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
Locked ownable synchronizers:
- None
The underlying implementation here is subtly broken. We will probably need to replace the hash-table approach for a flattened fixed array similar to what Minecraft does in the first place, save for the atomicity...
As of 6caf15f we're using a patched version of the vanilla chunk manager again rather than our own, so this issue should be resolved.