theishiopian / Parrying

A mod about deflecting blows (and inflicting your own)
6 stars 5 forks source link

[Severe] Tag being used before it was bound #21

Closed theishiopian closed 2 years ago

theishiopian commented 2 years ago

Several reports have been received of the two handed overlay attempting to use the Two handed tag at the wrong time. The exact cause of this remains a mystery. More information is needed.

NJL5390 commented 2 years ago

I have had this issue happen to me a few times today. Every time it has been when I've been on the main menu.

Typically this either happens when I hover over something that tries to display a tooltip, such as the panorama screen from the panorama mod: https://www.curseforge.com/minecraft/mc-mods/panorama

Or it can also happen in the multiplayer screen when trying to get the ping for a server.

Crash Report: https://gist.github.com/NJL5390/02a20b334c754742781567038e776dc6

I haven't had it happen outside the main menu, ever since the most recent update though. The crash report for me also seems to mention legendary tooltips quite a lot so maybe that mod has somethings to do with this issue?: https://www.curseforge.com/minecraft/mc-mods/legendary-tooltips (especially since I no longer seem to be able to reproduce this issue with parrying alone)

Forge Version: 39.0.9 Parrying Version: 2.3

theishiopian commented 2 years ago

Fascinating. This is very helpful, I will tighten up the tooltip so it can't happen outside normal gameplay.

Sarund9 commented 2 years ago

I got this crash in the create world menu, when entering the 'Game Rules' section It threw a ConcurrentModificationException PasteBin

theishiopian commented 2 years ago

This crash log doesn't seem to be related to Parry This!, but instead implicates Effective. Try removing that and see if it fixes your issue. If so, report this to Effective.

esotericist commented 2 years ago

as an fyi, i'm able to reliably trigger the 'used before it was bound' issue with two_handed_weapons by adjusting my resource pack settings in the options menu, entered from the main menu (before loading the world).

it doesn't seem to matter which resource pack.

edit: the following set of logs was triggered simply by enabling the vanilla-provided 'programmer art' resource pack.

https://gist.github.com/esotericist/a228e8f1a1e391dbdb10a2012c37df09

theishiopian commented 2 years ago

Can you try it without optifine?

esotericist commented 2 years ago

I don't have optifine.

theishiopian commented 2 years ago

I am unable to reproduce this issue, I suspect another mod is conflicting.

Kaleidio commented 2 years ago

I got the same crash just now with a log that is quite verbose in comparison

I believe it is a concurrent modification exception that only occurs when resource reloading due to the way custom tooltip mods (or Legendary Tooltips, or Quark) wants to build its tooltip renderer. please make sure you are loading absolutely all item data before any renderers get built at all.

Note how in NJL5390's crash report, the Legendary Tooltips mod is references as well, which I also have installed but its mixins were not noted in my crashlog. I will be opening an issue on their git as well and linking it here just in case collaboration is required

Seems to me that any other tooltip providing mod can crash in this fashion.

Crashlog: (Kaleidio's Battle Pack beta 7, mc 1.16.5) https://pastebin.com/8a1MR6gf

also note that in my crashlog's pathtrace, texturemanager was specifically pointed to, which leads me to believe it is a renderer building error.

my crash occured when I loaded a shaderpack (which triggers standard asset reload anyway, so consider it a crash during loading resource packs)

Kaleidio commented 2 years ago

seems to be an issue dating as far back as recent 1.16.5 versions, not just 1.18

Kaleidio commented 2 years ago

CAN CONFIRM INCOMPATIBILITY WITH LEGENDARY TOOLTIPS, was able to get the crash with just the following list of mods: Iceberg Legendary Tooltips Parry This!

crash was triggered by trying to load a third party resource pack whilst in the main menu, without having ever opened a world yet.

for whatever reason, it triggers resourcepack loading a second time, instead of just once. it is during this second and unnecessary reload that the crash occurs.

crashlog: https://pastebin.com/vyi1SWq1

Kaleidio commented 2 years ago

Cannot confirm crash with unique enchantments, seems to be a problem with Iceberg and Legendary Tooltips.

My conclusion is Iceberg is a coremod that includes methods which ask for item tags to build more rendering features other than just tooltips. because of this it might be asking for tags too soon, not your mod.

further expertise will be inquired by talking to the dev myself. I will post any necessary information here as I find it

Kaleidio commented 2 years ago

CAN CONFIRM INCOMPATIBILITY WITH QUARK

Quark is another mod that implements its own custom tooltips. this makes it quite obvious that the issue is how your pipeline feeds data into tooltip texture builders.

crashlog: https://pastebin.com/4ZsK8z3f

theishiopian commented 2 years ago

Thank you for doing this testing, I havent had time. I'll take a look at how they do it.

Kaleidio commented 2 years ago

of course, I thought you would need the information. if you need any further testing feel free to drop an artifact here and I'll be quick to it.

theishiopian commented 2 years ago

I am unable to reproduce the issue, even with JUST tooltips. what resource pack did you use?

Kaleidio commented 2 years ago

I am unable to reproduce the issue, even with JUST tooltips. what resource pack did you use?

that makes no sense. I used just an ordinary resource pack (faithful x64) to trigger it. I was able to reproduce it every single time.

what hardware do you have? maybe it requires a very specific core speed considering this is a thread race issue.

Kaleidio commented 2 years ago

hardware specification:

Ryzen 7 5800X 32GB DDR4 3800MT/s CL16 RTX 3080 512GB 6870MBps SSD

Kaleidio commented 2 years ago

try it with Quark as well. Legendary Tooltips is not alone.

you'll know it's about to crash if the game suddenly tries loading resources a second time.

theishiopian commented 2 years ago

Hardware specs are intel i7 6700k, nvidia rtx 2060 super, 32 GB ram

theishiopian commented 2 years ago

Tested with latest quark at time of writing, 3.2-257, and faithful x64 resource pack. Still cannot reproduce the issue

Kaleidio commented 2 years ago

Okay what mc version? I was getting the crash on 1.16.5 alone with forge 36.2.34. also using Java 8u51

remember to get it to happen you need to change into the resource pack without having ever opened a world. that way your tag "might not have registered yet". the crash will not happen if you open a world even once.

Kaleidio commented 2 years ago

if you still cannot get it to crash I can assume it is an AMD specific issue. as mentioned before I am still here and able to test if you need. i might open a fork as well and see what investigations I can perform with my dev team

mdun-alt commented 2 years ago

I dunno if this helps but the same error occurs with a mod pack I use, maybe there are some answers in here. I included shaders and crash logs if that helps Daldar-1.1.zip

mdun-alt commented 2 years ago

OK so I actually just checked again and apparently parrying 2.2.2 will just crash Minecraft by itself. I had no mods besides parrying and it caused the same error, could it be a problem with curseforge maybe?

Kaleidio commented 2 years ago

Okay this might actually make sense as CurseForge does inject some rules about threads etcetera. @theishiopian please reattempt your testing via installing on the curseforge launcher with the mods i provided you as well, and make sure not to tweak any curseforge settings, with it being parrying 2.2.2 on 1.16.5. make sure you downloaded and installed through the launcher as well.

theishiopian commented 2 years ago

thank you for investigating this, i simply do not have the time to do it myself right now. I'll try to remember to take a look at the curse launcher. Personally, I never use it, so if it is injecting stuff into mods (if so ew) that could be the cause.

Kaleidio commented 2 years ago

It wouldn't be injecting stuff into mods, it would be the default VM options it is providing.

AHilyard commented 2 years ago

Sorry for the delay in looking into this issue. I just wanted to clear up a few misconceptions in this thread.

for whatever reason, it triggers resourcepack loading a second time, instead of just once. it is during this second and unnecessary reload that the crash occurs.

This second apparent reload is actually Minecraft reverting the changes made since an exception occurred during the reload.

My conclusion is Iceberg is a coremod that includes methods which ask for item tags to build more rendering features other than just tooltips. because of this it might be asking for tags too soon, not your mod.

Iceberg isn't actually a coremod, nor does it request tags. There used to be a crash bug in Iceberg similar to this one because it scanned item tooltip lines when displaying tooltips, even before worlds were loaded but that was fixed quite a while ago.

Anyways, I've created a PR that fixes this in 1.16.5. I wasn't able to reproduce the problem in 1.18.1, but the same fix can be applied there if the same problem is occurring in that version.

Kaleidio commented 2 years ago

Good to know, thank you for the assistance. let's hope he pulls it

theishiopian commented 2 years ago

Thanks to the efforts of AHilyard, this issue should be fixed. An unofficial release will be pushed for 1.16.5, and a modified version of his fix has been included in 1.18.2.