WildfireRomeo / WildfireFemaleGenderMod

A Fabric Minecraft Mod - Minecraft's Most Popular Female Gender Mod!
https://modrinth.com/mod/female-gender
GNU Lesser General Public License v3.0
106 stars 62 forks source link

Rare concurrency crash due to playing sounds #57

Closed spiralhalo closed 2 years ago

spiralhalo commented 2 years ago

Sometimes the game crash when getting hurt with female voice on due to ConcurrentModificationException in the subtitle renderer if subtitles are on or the sound system otherwise.

How to reproduce

Due to being concurrency issue, this crash isn't reliably reproducible, but with some luck (or misfortune) testing it is straightforward: suffocate in single player with a stack full of normal golden apples (enchanted gapples can't be used) and eat periodically. The crash should happen within under 100 hurts.

Some stack traces

The cause wasn't obvious from the crashes, but I concluded this mod caused it after the crash consistently happen when getting hurt. Afterwards, testing it isolated from other mods pretty much confirmed it.

Time: 7/17/22, 7:27 AM
Description: Unexpected error

java.util.ConcurrentModificationException
    at Not Enough Crashes deobfuscated stack trace.(1.19+build.4)
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013)
    at java.util.ArrayList$Itr.next(ArrayList.java:967)
    at net.minecraft.client.gui.hud.SubtitlesHud.render(SubtitlesHud:64)
    at net.minecraft.client.gui.hud.InGameHud.render(InGameHud:371)
    at net.minecraft.client.render.GameRenderer.render(GameRenderer:862)
    at net.minecraft.client.MinecraftClient.render(MinecraftClient:1143)
    at net.minecraft.client.MinecraftClient.run(MinecraftClient:734)
    at net.minecraft.client.main.Main.main(Main:237)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:568)
    at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:423)
    at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:76)
    at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:24)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:568)
    at org.multimc.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104)
    at org.multimc.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:175)
    at org.multimc.impl.OneSixLauncher.launch(OneSixLauncher.java:185)
    at org.multimc.EntryPoint.listen(EntryPoint.java:127)
    at org.multimc.EntryPoint.main(EntryPoint.java:57)
Time: 7/17/22, 11:02 AM
Description: Unexpected error

java.util.ConcurrentModificationException
    at Not Enough Crashes deobfuscated stack trace.(1.19+build.4)
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1013)
    at java.util.ArrayList$Itr.next(ArrayList.java:967)
    at net.minecraft.client.sound.SoundSystem.tick(SoundSystem:250)
    at net.minecraft.client.sound.SoundSystem.tick(SoundSystem:238)
    at net.minecraft.client.sound.SoundManager.tick(SoundManager:249)
    at net.minecraft.client.MinecraftClient.tick(MinecraftClient:1823)
    at net.minecraft.client.MinecraftClient.render(MinecraftClient:1101)
    at net.minecraft.client.MinecraftClient.run(MinecraftClient:734)
    at net.minecraft.client.main.Main.main(Main:237)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:568)
    at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:423)
    at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:76)
    at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:24)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:568)
    at org.multimc.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104)
    at org.multimc.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:175)
    at org.multimc.impl.OneSixLauncher.launch(OneSixLauncher.java:185)
    at org.multimc.EntryPoint.listen(EntryPoint.java:127)
    at org.multimc.EntryPoint.main(EntryPoint.java:57)
hiyhiyhiy commented 2 years ago

I have a in-game crash with the female hurt sound turned on when I take damage; but with the sound turned off it doesn't crash.

Version of mod 1.19 Version of game 1.19.1

MLMII commented 2 years ago

I use Quilt (minecraft 1.19.2) and whenever the female hurt sounds are enabled the world crashes upon getting hurt.

It displays the following error before kicking me to the "searching for server screen" and then crashing.

Internal Exception: java.lang.NoSuchMethodError: 'net.minecraft.class_1297 net.minecraft.class_1657.method_44329()'

johnycraft commented 2 years ago

I am having the same issue has anyone worked out a fix for this yet?

MLMII commented 2 years ago

Turn the "female hurt sounds" off.

WildfireRomeo commented 2 years ago

I've spent over 30 minutes trying to reproduce this on Fabric version 3.0.0 and I can't seem to cause the game to crash.

WildfireRomeo commented 2 years ago

Fixed in 3.0.1