Sodium

Sodium

44M Downloads

Game hangs at SodiumChunkManager:103 on Render Thread (1.16.4)

cavallium opened this issue ยท 3 comments

commented

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
commented

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...

commented

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.

commented

It's fixed now, I didn't experience this bug anymore after that update