Ender IO Forestry

Ender IO Forestry

954k Downloads

Ender IO’s JEI plugin frequently causing the game to freeze

Dimentive opened this issue · 14 comments

commented

Issue description

Quite frequently, when I try to check the recipe or uses of an item in JEI, even if that item is not added by Ender IO, my game freezes for upwards of five seconds before anything happens. When it freezes, I’m unable to do anything.

Relevant part of the log:

[19:49:14] [Client thread/WARN] [jei]: Recipe registry plugin is slow, took 51.93 ms. class crazypants.enderio.base.integration.jei.DarkSteelUpgradeRecipeCategory$1
[19:49:24] [Server thread/WARN] [net.minecraft.server.MinecraftServer]: Can't keep up! Did the system time change, or is the server overloaded? Running 7799ms behind, skipping 155 tick(s)

What happens

JEI often freezes because of Ender IO’s JEI plugin.

What I expected to happen

I expected JEI not to freeze.

Steps to reproduce

  1. Download EnderCore, Ender IO, and Just Enough Items.
  2. Look at recipes and uses for items in JEI for a while.
  3. Witness your game freezing for several seconds at a time at seemingly random times.

Versions

  • Minecraft: 1.12.2
  • Forge: 14.23.5.2816
  • EnderCore: 0.5.57
  • Ender IO: 5.0.44
  • Just Enough Items: 4.15.0.277
  • SpongeForge: No
  • OptiFine: No
  • Single-player and/or server: Single-player, no server
commented

The log snippet suggests the plugin from EnderIO took a twentieth of a second. I assume the issue is the amount of mods you have, all their plugins, and the amount of recipes registered. I have not been able to reproduce that freeze in an instance with just JEI and EIO, nor have I experienced such an issue in an instance with around 200 mods (including child mods), so it is probably a different mod entirely, or it might just be your environment (Java version, arguments, hardware, etc.).

commented

Let me repeat what I said in the other ticket, just to keep things together:

"world can't keep up skipping ticks!" means that your server thread is running slow, "Recipe registry plugin is slow" means that your client thread is running slow. Unless you have a single-core CPU, those two threads run independently, so this seems to be more an issue of something that affects both causing an issue you only see because that's the only places that do performance measurements.

Looking at it again, even more confirms that. The recipe plugin takes 51 ms (1/20 of a second) on the client and then the server thread stalls for nearly 8 seconds. A recipe plugin has no means to stall the server, nothing on the client has those. The worst it could do is to get the client kicked for being unresponsive.

And let me stress something else again: There are very, very, very few places in the game where there is time measuring and logging. From vanilla there are 2 on the server (the one you get for the tick and the watchdog that kills the server after 60 seconds) and none on the client. Forge adds detailed time logging during the startup of the game, but nothing while it is running. JEI measures recipe plugins. And that's all I know of.

commented

¯_(ツ)_/¯ as stated previously, I get this on most decent sized packs with enderio installed, and can resolve the very obvious and clear issue by removing enderio entirely.
It doesn't touch the fps of my game, just the random nuking of 5-20 seconds of freezing; with the skipping ticks message only ever occurring during this.
And again, it's not "rare" or "unusual", it generally happens probably once every 10 minutes at minimum (NOT consistent, just a baseline and not tied to time at all) but only ever will trigger while doing something with JEI while enderio is installed.

commented

I get this on most decent sized packs with enderio installed

Do you have a modlist or can you provide a forced crashlog by holding f3 + c while ingame to get more details

commented

Optimizing mods? The list does include any performance-improvement mods.

I can create a list of the library mods, but that’ll take a while. The fact that it also happens in Engimatica 2 and Enigmatica 2: Expert means that you can just look at their mod lists, though. This isn’t caused by any of the mods that are only in my custom modpack.

commented

oh .. my fault i havent seen them in my first stroll through the list

can create a list of the library mods, but that’ll take a while.

a simple forced crashlog would make it short, like i said hold f3 + c while ingame and then throw it in pastebin or spoiler it like you did with the list (only for future reports)

commented

It’s a custom pack. Here’s my mod list:

Mod list – Click to expand

Doesn’t include library mods.

However, this also happens in modpacks I’ve played, such as Enigmatica 2 and Enigmatica 2: Expert. But the freezes aren’t as long in those modpacks, and they don’t happen as frequently, which is probably because they have much fewer mods than my custom modpack.

commented

Doesn’t include library mods

i kind of wanted to know what optimizing mods are used so include them too please

i suspect a buildup of orphaned data causing high GC spikes and maybe some optimizing mod is provoking this

best bet would be if you can narrow down the modpack as much as possible to get a test setup to compare with

Henry said

A recipe plugin has no means to stall the server

is fundamentally right on a direct approach, but if it leaves many orphaned objects (i don't mean leaks by the way) in the memory, the GC may take quite a while to recover the memory (hard GC may not be visible as it stalls the whole application)

commented

My friend is also getting this error in his log, its the last error and his game freezes up every time.

commented

I had the exact same issue but I only noticed it when I went to punch a chicken because I don't have JEI installed and after I punched the chicken it time skipped through its jump, I thought it was something from Opti fine so I put all the performance setting down to as low as they could go and I still got the time skipping chicken jump so I removed Opti fine and it still happened but by a stroke of luck I decided to lower my render distance and boom problem fixed so I can reproduce your EXACT problem with JEI after spending a good amount of time messing around with the mods you have and I can safely say that for me reducing the render distance fixed the problem

commented

hm, funny idea, can you change your UI scale for testing please

so that JEI a) displays as much as possible items and b) as few as items as possible

and then try again the render distance thing?!

i want to check if there is a bias based on how many things get rendered/displayed (just to see if it maybe a general memory/GC issue) ..

sorry for taking over the issue for random guesses, but i am having a lot of issues with ram/GC spikes in 1.12 on my own, but not that heavy and trying out myself stuff but without decend effect, though i can say changing the render distance did have an impact for me as well

(defining a larger newGen Space with XX:newSize=2G did help me a lot with the spikes but they are not gone yet)

commented

okay after changing the scale and testing multiple times the render distance did reduce lag inside of JEI when looking for items and I had no freezes at all however on the smallest UI scale with alot of items showing I did see more lag however it wasn't very perceivable so I don't think its that much of a difference however I also noticed that the longer the render distance the more times the in game clock becomes out of sync and drops ticks but the less time per desync whereas on slightly lower I would simply freeze and skip at least 400 ticks however on render distance 22 (Opti fine setting 22 not base Minecraft) I did not lag at all and I also did the chicken punch test and all 3 chickens flew perfectly 1 after another that's bearing in mind that I do have an i5-4460 (slightly overclocked but didn't make much of a difference anyway since its SOOOOO old) paired with 16GB's of DDR3-1660 and I have 12 GB's allocated to Minecraft which gets maxed at around 24 render distance and past that both RAM and CPU get rammed at 100% utilization and I get the jump in time and I KNOW the issue is chunk updates because I get less and less chunk updates the higher the render distance until its completely unresponsive and since I usually only run at 12 render distance they are a non-issue however it seems whenever something triggers a chunk update (picking up lava/water or any flowing substance for that fact) I get less chunk updates so its something to do with the physics for me

commented

sorry if there are any spelling mistakes or the such

commented

This issue being Close bc plugin has been Rewritten Completely and hasn't been freezing Jei