[1.6b/c] Multi-mod conflict resulting in game-breaking memory leak
Aedda opened this issue ยท 15 comments
I first ran into this about a month ago when upgrading from 1.6a to 1.6b. Since then it has taken approx two weeks to track down. A lot of sleepless nights trying to figure it out...
First the mod list:
Mystcraft 0.12.3.01 (no update possible due to authors IRL stuff)
ForgeMultipart 1.2.0.345 (Latest as of this issue, also affects 1.1.2.331)
Et Futurum 1.5.5 (also affects 1.5.4)
and finally NuclearCraft-1.6c (and 1.6b)
Forge-1558
Java 1.8
With those mods installed, (FMP will download CodeChickenLib but it appears to be a non-issue), upon world load/creation a timer begins. After approx 24 minutes Allocated Memory Usage (F3) will rise to 70-90%, after approx 32 minutes it will jump to 100%. It may drop back to 97%-99% it may not. The game will still operate now however over the next 5 minutes it will become increasingly lagged until it hangs or java crashes due to java.lang.OutOfMemoryError: Java heap space.
A curious thing about this issue is, the time before these events happen decreases with the number of mods installed, about 10 fewer minutes per 100 mods, so in a pack with 250 mods it takes about 6 minutes which is why I took so much effort to track it down. I'm unable to use 1.6b/c in my world/pack.
I've allocated 4, 5, and 6gb of memory to java. The only thing increasing the memory bought was additional time before everything collapsed.
So since this was not an issue in 1.6a but is in 1.6b/c could you please try to figure out what changed that may have suddenly triggered this? I want to continue to use this mod and cannot easily remove the others, my only option is to not upgrade at this time. Thanks!
So on a hunch I disabled the Profiling in Mystcraft. I noticed in cases where the leak occurred it never finished profiling. Now 43 minutes in and memory is still stable at 29%. So something that changed between 1.6a and b causes Mystcrafts profiling to continuously consume memory. But only when Et Futurum and ForgeMicroblocks are both present as well
It's probably a certain block/tile entity causing this - which machines/blocks/tile entities were you using from the mod?
None, all that needs to be done is have those mods installed, and begin a new world and wait for it to happen, no movement, no block placement.
One thing I have not tried is a complete wipe of the config folder since limiting it to these mods. I will do so now and report back in 30-45 minutes.
Ok, I cleared the config folder and 34 minutes in and it hit 100% and rapidly crashed this time. Here is the console output showing the world generating and all messages leading up to the event. Again nothing was done in the world other than opening the inventory menu to prevent the client from pausing.
So if 1.6b/c is installed with Mystcraft on their own (or at least without Et Futurum and ForgeMicroblocks), there's no memory issue?
Not that I could reproduce. I gave it about 40 minutes in either case but I suppose there is always the possibility that removing either increased the time until the leak showed. I'll take those out of the test instance and leave it running for a few hours and make sure.
Indeed unusual and it very well could be on Mystcrafts end. At least turning off profiling seems to greatly reduce or slow the leak making the game bearable to play again. Thank you for looking into this
I guess all I can do is get see if the issue's still there in the next update :P
Well, nothing there that's unusual - I updated to the latest version of Forge and updated all of the APIs I use, but I don't see why that would cause any issues. The fact that very specific mods cause this tells me that is a very unusual bug.
I've just updated the mod - could you see if the problem persists? Thanks in advance.
Right, I have made a possible connection:
The other day I was playing FTB with a few friends, testing out the mod but also just playing a survival game - I crashed immediately as I made some forge microblocks. Taking NC out did not fix this, but some have said updating to Java 8 fixes this. I will do exactly that, and we shall see if anything happens...