Crash on NeoForge 1.21.1-21.1.145 with `Remove Reloading Screen` mod
mpustovoi opened this issue ยท 2 comments
Describe the Bug
After updating Vanillin from 1.0.0 to 1.1.0 in my heavily modded instance my game crashed when I try to create or enter the world.
I tracked down the issue to a minimal setup with Create & Vanillin + Remove Reloading Screen.
Reproduction Steps
- Install Create & Vanillin.
- Install Remove Reloading Screen.
- Launch the game and create a new world. It crashes right after 100% loading & "Saving world".
Expected Result
The game should work fine like it did with Vanillin 1.0.0
Crash Report or Log
Logs: https://mclo.gs/E4iPstb.
Crash report: https://mclo.gs/CJX6joM.
Operating System
Windows 10
What is your GPU?
Nvidia GeForce GTX 1060
Mod Version
1.1.0
Minecraft Version
1.21.1
Loader Version
NeoForge 1.21.1-21.1.145
Other Mods
- Create 1.21.1-6.0.4
- Remove Reloading Screen 5.0.9+mc1.21.1-forge
Additional Context
The issue isn't there with Vanillin 1.0.0 on the minimal setup or on heavily modified instance.
Sometimes the issue doesn't appear in logs, but it's always there in the crash report.
It may be useful to you, the crash is caused by the minecraft font reloader closing the texture you are trying to upload
Stacktrace:
java.lang.Throwable: null
at TRANSFORMER/minecraft@1.21.1/com.mojang.blaze3d.platform.NativeImage.handler$zzk000$rrls$setClosed(NativeImage.java:764) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/com.mojang.blaze3d.platform.NativeImage.close(NativeImage.java:175) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.font.providers.BitmapProvider.close(BitmapProvider.java:42) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~\[?:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.font.FontManager.apply(FontManager.java:274) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.font.FontManager.lambda$reload$1(FontManager.java:164) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~\[?:?\]
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~\[?:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:111) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.Minecraft.runTick(Minecraft.java:1155) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.Minecraft.run(Minecraft.java:807) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.main.Main.main(Main.java:230) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]Rrls reloads the fonts twice, once for itself, the second time for vanilla minecraft, maybe the reason is this
Huh nice report. Vanillin does some kinda cursed stuff to make fonts usable from off of the main thread, and it looks like that is having an interaction with rrls that causes a font texture to be deleted between vanillin scheduling an upload off-thread, and the upload actually going through on the main thread.