Bobby

Bobby

8M Downloads

Probable conflict with Lithium

xGab0 opened this issue ยท 1 comments

commented

I was trying to join on Wynncraft but then the game instantly crashed, here's the crash-report:
crash-2023-12-11_19.16.04-client.txt

From what I understand in this crash-report it appears that the Bobby FakeChunkManager loaded a ChunkSection before the VanillaChunkManager could, causing a missed static initialization in the Lithium BlockStateFlags class.

I'm still trying to reproduce the crash but it's probably really hard to reproduce in normal conditions.

Launcher: Modrinth
Java: Zulu-21.0.1
Minecraft: Fabric-mc1.20.4 Loader v0.15.1
RenderDistance: 32 Chunks
SimulationDistance: 16 Chunks

Loaded mods that mess with ClientWorld:

  • c2me v0.2.0+alpha.11.38
  • ferritecore v6.0.2
  • modernfix v5.10.1+mc1.20.4
  • starlight v1.1.3+fabric.f5dcd1a
  • fasterrandom v1.5.0
  • lithium v0.12.0
  • bobby v5.0.3
commented

This is a thread safety issue in Lithium, please report it on their issue tracker.

Specifically, if BlockStateFlags is first accessed from one thread and that manages to get far enough to initialize the TrackedBlockStatePredicate class, then TrackedBlockStatePredicate.FULLY_INITIALIZED can be set from another thread before the first thread is actually done initializing BlockStateFlags.