Mystcraft-Issues icon indicating copy to clipboard operation
Mystcraft-Issues copied to clipboard

Mystcraft 1.11.2 still has -2147483648 mystcraft test dimension, immense lag

Open kragnoth opened this issue 8 years ago • 12 comments

This dimension isn't registering properly, and so allows forestry and other mods to run rampant trying to generate items in an unloaded dimension. This is causing cascading world gen lag.

I shall include a snippet of my 90 meg log file (its growing fast)

https://pastebin.com/s0mG3Vh2

kragnoth avatar Jul 16 '17 13:07 kragnoth

Enjoy this log too, related to the exact same issue: https://paste.ee/p/Bxlni

KristjanKr avatar Jul 16 '17 13:07 KristjanKr

ok, so it looks like it is related to tick profiling. I wonder how long it runs for, or if its permanent in single player if you leave the background profiling on.

kragnoth avatar Jul 16 '17 14:07 kragnoth

Its Mystcraft's Instability profiling, which is still a thing.

It performs a one-time instability calculation. Once it finished, it won't re-calculate instability. It exists to adjust instability levels of ores and other things to the current pack you're playing.

HellFirePvP avatar Jul 16 '17 14:07 HellFirePvP

edit: I removed recurrent complex and generation time went from 2 hours to 30 minutes. Will probably try and reference this bug log there, but can probably be fixed by blacklisting this dimension.

kragnoth avatar Jul 16 '17 15:07 kragnoth

I recommend using either custom biomes that won't induce structure generation, or the dimension dictionary to register as a non-overworld biome. This was intended as a pull to Forge, but unfortunately still nothing has moved - so while you're at it please weigh in there since it was intended for these kinds of problems.

For ease of use, the dimension can be registered with a type through RC's FMLIntercommHandler, which will drop the UNCATEGORIZED tag and stop RC from spawning structures there.

Ivorforce avatar Jul 16 '17 16:07 Ivorforce

See #188 for more info. In short, I'm changing the baselining to only use biomes that generate in the Overworld, and to do fewer chunks overall. Should help.

As to other structure gen going on, it's possible some bugs exist in the chunk selection which confuse other mods. If we can isolate and identify these I'd be happy to fix them.

If @Ivorforce can provide a sample for the IMC messages to send I can try putting that in as well. I still feel dimensions should provide properties from which mods can apply logic to decide if they should modify the dimension. Having flat tags is rarely useful computationally; it only works well for human-readable initial categorization, and not as a final filter.

XCompWiz avatar Jul 22 '17 17:07 XCompWiz

Thanks xcompwiz.

kragnoth avatar Jul 22 '17 19:07 kragnoth

@Ivorforce Is the structure generation already prevented if you just register an empty list of types or does it have to have some type? And if so, is adding a new Type that's something along the lines of "PROFILING" or sufficient to prevent the spawning? - Looking through RecurrentComplex's source i couldn't find the answer to that..

HellFirePvP avatar Jul 25 '17 13:07 HellFirePvP

https://gist.github.com/Sunconure11/373b1363c86cbba3be6e1d13adf44599

Related.

Sunconure11 avatar Jul 25 '17 17:07 Sunconure11

@XCompWiz I'd have hoped it would be easy enough to read from my intercomm handler itself but here you go. I should maybe make a dummy class for this kind of stuff.

    public static final String MOD_ID = "reccomplex";

    NBTTagCompound message = new NBTTagCompound();

    message.setInteger("dimensionID", dimID);
    NBTTagList types = new NBTTagList();
    message.setString("types", types);

    FMLInterModComms.sendMessage(MOD_ID, "registerDimension", message);

@HellFirePvP Good question, I had to check myself. It would be enough to register an empty list (though I definitely don't recommend it, at least TOP_LIMIT or NO_TOP_LIMIT (and vice versa with bottom) should be set, and perhaps a general indicator of which mod it belongs to. See https://github.com/Ivorforce/RecurrentComplex/blob/master/src/main/java/ivorius/reccomplex/dimensions/DimensionDictionary.java#L123.

Ivorforce avatar Jul 31 '17 16:07 Ivorforce

This profiler causes the log to mention Tough As Nails as a cause of cascading worldgen lag. See @Sunconure11 's log. TAN is not a mod that does any worldgen at all. The only thing I can think of why it would load a new chunk, is because it is calculating the temperature around a player and encounters a new chunk in the process. This typically doesn't happen, because a real player would have loaded all chunks in a radius of +-10 chunks ages before.

So now my question is: Is your profiler using some kind of fake player? The log supports this, as most mentions of TAN loading new chunks occurs in groups of three or four lines and every chunk has four neighbouring chunks around it of which some may already be loaded/generated.

Robijnvogel avatar Sep 27 '17 12:09 Robijnvogel

@Robijnvogel Pretty sure there's no fake player involved. Also pretty sure there was some issues with the baseline profiler generating the wrong chunks, though, so that hopefully cleared up.

XCompWiz avatar Jul 01 '18 23:07 XCompWiz