delvr / Repose

Walkable hills in Minecraft.
https://minecraft.curseforge.com/projects/repose
6 stars 3 forks source link

Massive server overload when entering Nether for the first time. #33

Open Nox13last opened 6 years ago

Nox13last commented 6 years ago

Entering the Nether causes my game to hitch and stop responding. Before the game froze, I witnessed a cascade of Soul Sand and heard the "falling sand" sound effect (stacked over itself several dozen times). I spawned looking down, and I can see a jagged slope of Soul Sand near the portal. The game has consumed all 10GB of RAM I assigned to it. The game looks like something's triggered a catastrophic global avalanche of all the gravel and Soul Sand in the generated area. This has not happened on the overworld - generated sand and dirt ceilings have not collapsed without player tampering.

Minecraft 1.12.2 Repose 1.12-1.6.1

Nox13last commented 6 years ago

Much of the lag and memleaks were caused by the sheer number of drops caused by the blocks falling and being broken by something or other.

Also on closer examination (and destroying all of the block drops), Repose tried to simulate its physics before the world had finished generating. Magma had not yet been generated, and the adjacent chunks looked very Far Landian - the terrain was probably corrupted by the OOM.

The overall problem is "fixed" by removing Repose from the list of mods to load at game initialisation, generating the Nether, and then putting Repose back in.

Nox13last commented 6 years ago

Nope. It broke again. I managed to fire off a /kill @e[type=item] command in between the scant few frames I was afforded, and this is what happened.

2018-09-23_22 27 44 With Repose removed.

2018-09-24_01 49 39 With Repose added and /kill @e[type=item] executed.

2018-09-24_02 12 19 I have no idea how much it was willing to collapse, but it was going to take my computer with it.

delvr commented 6 years ago

HI Nox13last, thanks for reporting this. This sort of thing tends to happen in modded worlds with more suspended gravity-enabled blocks than Repose normally has to deal with. (See also #32). There's a "safety valve" in the code that causes blocks to teleport instead of creating falling entities when the server starts to lag too much, but clearly that's not sufficient. I was planning to change this mechanic for 1.13 but I'll see if I can come up with a workaround for 1.12 in the meantime.

Nox13last commented 6 years ago

I have had to use the workaround of removing minecraft:soul_sand from the list of things that Repose will try to simulate, and the Nether seems to no longer want to devour my i7.

It seemed to also want to simulate the Overgrown Netherrack (Biomes O'Plenty, I think) next to it, and I don't know why.