Angelica

Angelica

9.7k Downloads

crash with ie

iamsoNewBee opened this issue ยท 10 comments

commented

Your GTNH Discord Username

null

Mod Version

latest

Java Version

Java 8

Graphics Card Vendor

Intel iGPU

Bug Report

crash-2024-09-24_22.35.09-client.txt

Mod List or GTNH Pack Version

NNCGEGALUVPMD`)IEVOTDZ2
{%))P2(LW)S{X2EW)Z)Y0}U

Final Checklist

  • I have searched the issues and haven't found a similar issue.
  • I have read the known incompatibilities and this is not related to one of those.
  • I am running an officially released version. (Or, if I've compiled it myself I plan to fix the issue)
  • This issue is not related to a feature that is disabed by default - Shaders, MCPF, etc. [They'll be enabled when they're ready for testing]
commented

It's not under a free license, and I believe the author doesn't care about 1.7.10 support. I'm unclear if they'd be open to someone else maintaining it, but also don't have much of a desire myself to ask.

It would require a mixin/ASM.

Might be worth considering an AngelicaCompat mod that could add mixins to fix them... since I don't really want to slow down compile time more in angelica proper... ๐Ÿค”

commented

Yeah, I have Extra Utils fixes in Angelica directly right now. Not sure if it really makes sense there or not, I need to work out an ASM transformer that will somehow catch a cast on a tile entity from getTileEntity within a renderWorldBlock method and add a null guard, and just let that rip and auto-fix everything maybe.

commented

It would seem immersive engineering is not thread safe

Caused by: java.lang.NullPointerException
	at blusunrize.immersiveengineering.client.render.BlockRenderWoodenDevices.renderWorldBlock(BlockRenderWoodenDevices.java:92)
	at cpw.mods.fml.client.registry.RenderingRegistry.renderWorldBlock(RenderingRegistry.java:118)
	at FMLRenderAccessLibrary.renderWorldBlock(FMLRenderAccessLibrary.java:53)
commented

Shouldn't it not be getting multi-threaded unless it has the ThreadSafeISBRH annotation? Although this could be an example of something like the EnderIO painter putting a different ISBRH into another ISBRH that has the annotation.

commented
commented

Some mods like to pretend to be vanilla... and others don't stick within the subchunks properly... ๐Ÿ˜“

commented

to be more detailed,it crashed after i break a ie wooden storage crate(not awlays).

commented

Yeah this is just a classic problem of assuming that getTileEntity cannot return null. It certainly can, and if you don't check against it, then it will crash, regardless of Angelica. The difference is Angelica makes it far more likely to occur, this is ultimately a race condition with the tile entity being removed separately from the rendering, and the rendering trying to render the block after the tile entity has been removed from the world. The getTileEntity call simply needs to have a guard against a null value, and it should have that regardless of Angelica.

I don't know if anyone is actively maintaining Immersive Engineering in 1.7.10 though

commented

This should be fixed with Angelica beta8, it's not necessarily "fixed" in the sense that it's made immersive engineering stop doing the bad behavior. But it won't crash the game anymore, the new error block will be rendered when this exception happens.

I'm going to leave this open because it would be desirable to have this fixed, maybe we can do it in AngelicaCompat someday.

commented

FYI while we fixed the crashes for this with beta8, I've also now included actual patches to Immersive Engineering as part of #719, which will most likely be in beta17