skywardmc / threadtweak

Improve and tweak Minecraft thread scheduling (again!)
https://modrinth.com/mod/threadtweak
MIT License
21 stars 6 forks source link

"Registry is already frozen" - This mod freezing the registry too early #15

Closed FlooferLand closed 2 months ago

FlooferLand commented 2 months ago

I was using this mod in my dev environment and came across a big problem. The registry gets frozen too early, seemingly at random.

 java.lang.IllegalStateException: Registry is already frozen (trying to add key ResourceKey[minecraft:sound_event / darkwest:conner_voiceline])
    at net.minecraft.registry.SimpleRegistry.assertNotFrozen(SimpleRegistry.java:143) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.registry.SimpleRegistry.set(SimpleRegistry.java:143) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.registry.SimpleRegistry.add(SimpleRegistry.java:178) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.registry.Registry.register(Registry.java:317) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.registry.Registry.register(Registry.java:308) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at flooferland.darkwest.sound.ModSound.registerSoundEvent(ModSound.java:55) ~[main/:?]
    at flooferland.darkwest.sound.ModSound.registerSounds(ModSound.java:74) ~[main/:?]
    at flooferland.darkwest.DarkWestMod.lambda$onInitialize$0(DarkWestMod.java:32) ~[main/:?]
    at flooferland.darkwest.DarkWestMod$$Lambda$4783/0x000000004bcc36d8.run(Unknown Source) ~[?:?]
    at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:149) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:29) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:126) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:120) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1171) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:838) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-merged-cf7b7e01a4-1.20.4-net.fabricmc.yarn.1_20_4.1.20.4+build.3-v2.jar:?]
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.10.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.10.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.10.jar:?]
    at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar:?]

I've solved this issue by removing ThreadTweak, but you may want to investigate further into this issue. It sometimes happens for me in a Fabric dev environment when calling Registry.register from a for loop inside ModInitializer.

FlooferLand commented 2 months ago

Turns out it's not due to ThreadTweak. It was a coincidence, since for a bit when removing the mod it wasn't giving me the error.