Roughly Enough Items Fabric/Forge/NeoForge (REI)

Roughly Enough Items Fabric/Forge/NeoForge (REI)

40M Downloads

Freezing game after recipe[Bug]

Tryonus opened this issue ยท 21 comments

commented

Describe the bug
When using R to look up the recipe of any item, as soon as I escape and go back into game it Freezes, can not use any keys and all mobs/entities are frozen.
Only way to exit game is using the close X

Steps to Reproduce
Steps to reproduce the behavior: Open REI find a recipe press R key, press esc. Game Freezes

Screenshots
No Screenshots, but maybe able to provide Utube video if needed.

Environment (please complete the following information with the version):

  • Minecraft: 1.17.1
  • Mod Loader: fabric

Logs
Sorry no Crash logs as its a freeze not a crash

Additional context
Happens with both 6.0.265 alpha and 6.0.267 alpha version.

commented

Please share the logs, they are in logs/latest.log, they generate regardless it crashes or not

Learn something new every day, did not know about these.
Hope it helps.

latest.log

commented

I just had this happen to me as well, but when pressing E to close the UI when looking at a recipe. I am using Iris Shaders however, so I do not know if that could be a cause. I tried the latest 3 versions available on curse forge, happening on all of them.

commented

Please share the logs, they are in logs/latest.log, they generate regardless it crashes or not

commented

I just spent the last 20 minutes trying out mod combinations, seeing if it was a conflict, and it appears to have been the Replay Mod. This issue only happens when they are both installed at the same time.

Here is the log of when only REI (and dependencies) and the Replay Mod are installed: https://pastebin.com/2xCTahqa

Let me know if I can do anything else

EDIT: In that log, I started the client, joined my server, checked a recipe, hit E, then the issue appeared and I closed the client.

commented

Please provide a new crash log with the new architectury API version that was just released, that would output better errors and allow me to determine what is causing the issue.

commented

Please provide a new crash log with the new architectury API version that was just released, that would output better errors and allow me to determine what is causing the issue.

I was able to update the ArchitecturyAPI (Fabric) to version 2.3.24 via Curseforge launcher, I believe that is the latest version.

latest.log

commented

Sorry about that, work got pretty busy yesterday!
It froze up again with the newest architectury api (v2.3.24). Here is the latest.log
The above log is again limited to just REI and the Replay Mod with their dependencies.
Tryonus' video also shows exactly what happens to me as well.

commented

Actually, I kinda need you to crash with the new architectury ๐Ÿ˜…๐Ÿ˜…

commented

Ah.... Right ok np , so to get this crash report had to do the F3+C, hope this is what you are after.

crash-2021-08-06_19.59.20-client.txt

commented

Noooo, I actually meant crashing it with this issue that we are commenting on

commented

That I can't help with, it does not Crash, it only freezes, there is no crash report.

commented

@Zeoic could you try to reproduce the issue with latest architectury api for better debug logs?

commented

I know u need more of a log/report, but this short video shows u what happens...

https://www.youtube.com/watch?v=-es4I57AopQ&ab_channel=Tryonus

commented

Same here. Just pressed R while hovering on an item and the game froze. Also happens when pressing U.

Minecraft 1.17.1
roughlyenoughitems 6.0.264-alpha
fabricloader 0.11.6

latest.log
image
latest.log

commented

Same, I found this warning in the logs that i think is the cause:
[Render thread/INFO]: OpenGL debug message: id=1, source=API, type=ERROR, severity=HIGH, message='GL_INVALID_ENUM in glTexParameter(param=0x2900)'

Copy pasted from the discord

commented

This is because ReplayMod creates a Screen instance for internal use (mostly for convenience) which was never meant to be actually displayed. But that's what is happening here:
REI gets hold of the RM-internal Screen via the init event and stores it as the previous screen (here), even though it was never displayed (RM only calls Screen.init, never MC.setScreen), and then when the REI screen gets closed, it restores the RM-internal Screen which causes the game to freeze (it's not actually frozen, it's just a blank screen which does not react to keyboard inputs).

I do intent to get rid of that internal screen eventually, though it might be some time before that happens and it's probably a good idea anyway for REI to also check if the Screen being initialized is actually the current screen.

Side note: I believe the previous two posts are not actually related to original issue.

commented
commented

I have the same issue. Hitting esc when seeing a recipe crashes the game:

Log: https://bytebin.lucko.me/htXGyJy733

commented

This is because ReplayMod creates a Screen instance for internal use (mostly for convenience) which was never meant to be actually displayed. But that's what is happening here:
REI gets hold of the RM-internal Screen via the init event and stores it as the previous screen (here), even though it was never displayed (RM only calls Screen.init, never MC.setScreen), and then when the REI screen gets closed, it restores the RM-internal Screen which causes the game to freeze (it's not actually frozen, it's just a blank screen which does not react to keyboard inputs).

I do intent to get rid of that internal screen eventually, though it might be some time before that happens and it's probably a good idea anyway for REI to also check if the Screen being initialized is actually the current screen.

Side note: I believe the previous two posts are not actually related to original issue.

Thanks for the info, anyway for REI to check whether it is a valid screen to go back to? REI stores the previous screens as parent screens.

commented

anyway for REI to check whether it is a valid screen to go back to?

The two most straight forward ways I can think of would be either checking if the given screen is mc.currentScreen during the init event or using ClientGuiEvent.SET_SCREEN instead of the init event. First one is probably better in case another mod swaps out the screen-to-be-opened after SET_SCREEN observes it (just like SET_SCREEN could).

commented

We are now checking currentScreen when storing it, thanks!