crash with ie
iamsoNewBee opened this issue ยท 10 comments
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
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]
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... ๐ค
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.
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)
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.
Ahh, this looks like it's trying to get a TileEntity that's outside of the chunk + radius:
https://github.com/BluSunrize/ImmersiveEngineering/blob/1.7.10/src/main/java/blusunrize/immersiveengineering/client/render/BlockRenderWoodenDevices.java#L91
Some mods like to pretend to be vanilla... and others don't stick within the subchunks properly... ๐
to be more detailed,it crashed after i break a ie wooden storage crate(not awlays).
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
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.
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