AppleSkin: Saturation hud overlay causing Out of Memory error

During the “Saving World” phase of loading into a world, saturation hud overlay causes Out of Memory error due to too large array request. Doesn’t crash the game, just pops up a menu where Minecraft warns you of the event and allows you to quit or return to menu. Fixed by setting showSaturationHudOverlay to false in config. Issue found while trying to join a server using the modpack ATM6 1.7.1.

Call stack:

[19Jul2021 12:05:30.534] [Render thread/FATAL] [net.minecraft.client.Minecraft/]: Out of memory
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
	at java.util.Arrays.copyOf(Unknown Source) ~[?:1.8.0_291]
	at java.util.Vector.grow(Unknown Source) ~[?:1.8.0_291]
	at java.util.Vector.ensureCapacityHelper(Unknown Source) ~[?:1.8.0_291]
	at java.util.Vector.setSize(Unknown Source) ~[?:1.8.0_291]
	at squeek.appleskin.client.HUDOverlayHandler.generateBarOffsets(HUDOverlayHandler.java:494) ~[appleskin:mc1.16.4-2.0.0]
	at squeek.appleskin.client.HUDOverlayHandler.onRender(HUDOverlayHandler.java:107) ~[appleskin:mc1.16.4-2.0.0]
	at net.minecraftforge.eventbus.ASMEventHandler_3056_HUDOverlayHandler_onRender_Post.invoke(.dynamic) ~[?:?]
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?]
	at net.minecraftforge.eventbus.EventBus$$Lambda$2612/1344076285.invoke(Unknown Source) ~[?:?]
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?]
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?]
	at net.minecraftforge.client.gui.ForgeIngameGui.post(ForgeIngameGui.java:832) ~[forge:?]
	at net.minecraftforge.client.gui.ForgeIngameGui.renderFood(ForgeIngameGui.java:545) ~[forge:?]
	at net.minecraftforge.client.gui.ForgeIngameGui.func_238445_a_(ForgeIngameGui.java:165) ~[forge:?]
	at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:472) ~[?:?]
	at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976) ~[?:?]
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) ~[?:?]
	at net.minecraft.client.main.Main.main(Main.java:184) ~[minecraft-1.16.5-client.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) ~[forge-1.16.5-36.1.32-launcher.jar:36.1]
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$503/741236338.call(Unknown Source) ~[?:?]
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) ~[modlauncher-8.0.9.jar:?]
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) ~[modlauncher-8.0.9.jar:?]
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) ~[modlauncher-8.0.9.jar:?]
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) ~[modlauncher-8.0.9.jar:?]
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) ~[modlauncher-8.0.9.jar:?]
	at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:50) ~[ForgeWrapper-1.4.2.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 19 (13 by maintainers)

Most upvoted comments

Hello again, new development. The error started again but wasn’t being caught by healthtest2 (turns out since it is an OutOfMemory_Error_, catching an exception doesn’t grab it). I fixed the catch and got this line:

“Tried and failed to set healthBarOffsets size to 2147483647 from max health=24.0 and absorption=Infinity”

If I successfully load into the server I do not actually have infinite absorption and I’m not sure where this information could be coming from.

I won’t have access to my computer for some time but hopefully this helps a bit and I’ll try more debugging when I’m available.

// new catch
catch(OutOfMemoryError e)

Well, my friend deleted the serverstarter.lock file and restarted the server. I haven’t been able to replicate the crash since. It seems some strange corruption was only affecting me.

I’ll continue to use healthtest2 just incase this ever appears again.

Sorry about this, thanks for your help.

crash-2021-07-19_19.41.40-client.txt Tried twice, both attempts showed similar data.