[0.4.0] World stops generating
bevilp opened this issue · 25 comments
Modpack version
0.4.0
Describe the bug
Flying around in creative mode in a single player world. World stopped generating.
Tried leaving the world to rejoin, It was stuck on "saving world" for 5-10 min before I killed the process.
Logs
Screenshots
So, on 0.5.10 I still run into somethign similar.
It is different, as previously it was like a horizontal line and all chunks aligned to that line would not generate (i.e. all chunks north) - so it always gave the impression that there is a magic chunk and once you find it it blocks all further creation.
Now it is more like "slow chunk loading" meaning random chunks seem to not load. Problem is, that they never finish.
I have the direct compariosn to a Valhelsia 3 server running super smooth on the same server hardware, so I still think this is odd.
The "world gen" - "performance" is sooo different. In V3 i can telport around and everyhting loads, worst case is I have to look in all directions (Incl shaders and resource pack).
I will try to test more in hopes that i find something more substantial on the latets server build (0.5.11) - drives me nuts, its my favorite modpack by FAR.
I bothered some kind souls in the discord performance channel and got pointed at spark, so i install that on a fresh 0.5.11 and re-test.
This issue tortured me sinc e0.4.x. As late as early 0.5.x versions i still encountered it, strangely neough only on the server, never in sp. It got even worse, that it would happen occasional on my openbsd jail server but not if i run (the exact same world) as dedicated server on windows...
However I am happy to report that since 0.5.14 or so I cant duplicate this, even not on the openbsd jail and i only write this for personal closure :c)
I have the exact same issue but a restart of the server did not fix it, instead at ther same chunk the world stops.
Last console output of the server:
[05:23:57] [Netty Server IO #1/ERROR] [minecraft/ArgumentTypes]: Could not serialize dev.maxneedssnacks.interactio.command.RegistryArgument@22fd90eb (class dev.maxneedssnacks.interactio.command.RegistryArgument) - will not be sent to client!
Afterthat it basically just goes unresponsive (till it automatically restarts after 3x 300sec time outs.).
(It is a brand new world and i did basically nothing besides travelling in peaceful.)
Sorry, not sure if other files/info would make sense to report to help with this.
P.S.: First 3 re-start did not change a thing, 4th restart with a long wait time - around 10 min - continued loading there.
Could you supply latest and debug.log from the server please @Skar78 ? :)
@NillerMedDild Here: https://www.dropbox.com/sh/mfhf8lh2aps5dke/AAAxAmTP4cnc_AJM38uo4STma?dl=0
Fresh start-up, run around generating new chunks, till it slowed down more and more.
However in that example it just extremely slowed down, and did not came to this complete halt (but there is obviously some issue slowing down chunk generation).
I will try to re-produce the "complete halt" in chunk generation - but i think both is the same issue in different stages (chunks generating so slow that it breaks the timeout threshhold for restart.)
DropboxShared with Dropbox
Added some screenshot about the server, just in case you think it might be memory/cpu limitations.
As far as I know there is no timeout for generating chunks. There is only a timeout for the main server thread, which is supposed to run independent of chunk generation. The game will crash if you exceed it.
Well, i did a test with /forge generate 0 0 0 100000 and at 813/100000 the server tick exceeded 300s and ServerHangWatchdog called it off.
This was without a player connected.
This may not be fixable at the moment. Have a look at MinecraftForge/MinecraftForge#7532
Well, 0.41 did not magically resolved this, just in case somebody wonders. Its not clear for me why this does not seem to affect SP?
It does occur on SP. I've yet to be able to start my 0.4 play through because it makes it very very slow to find a good seed due to the frequent restarts needed :(
Our server has been great so far. I just generated a ton of new chunks with tps at 9. It could just be their server is lagging all together and so everything is slower, but it shouldn't be this same issue
It's not simple lag. I left the instance running for several hours (got distracted with something else) during one of my seed finder attempts in 0.4 and when I came back it was still sitting with the same chunk void and no log changes in hours. You also cant do a normal shutdown of the instance at all and have to kill it.
Can people running into this install the JDK, and the next time you encounter the freeze use JStack to print out stack of each Thread and then send us the output? (Might have to add the JDK bin folder to path or call it directly.)
jstack -l <pid> > threads.log
Replace <pid>
with the process ID. On unix you can use top
or ps fx
to find the process id. On Windows, use Task Manager's details tab. Then send threads.log
which should be in the current working directory.
Looking at the stack for "Server Thread" will show if it's related to MinecraftForge/MinecraftForge#7532 as mentioned above. If it is it'll be stuck on trying to complete future.
This freeze occurs two different ways that I've seen. The first is the easiest to replicate, just keep creating worlds in singleplayer and logout to create another until you get the freeze. Sometimes it takes two worlds, sometimes more than a dozen. The second version is just flying around randomly into new chunks until the world stops generating and you're just stuck with something like the image above. I've spent about 2 hours trying to get an example of that one for you with no luck so far. If I encounter it in my normal playthrough I'll update the issue with the thread stacks.
Here are two examples of the first case:
jstack-1.txt
jstack-2.txt
Maybe try without Fast Leaf Decay. Does it still freeze?
Although it seems like it's waiting for a future to complete on a chunk, it's not the same as that forge issue mentioned above because that's specifically during ChunkEvent.Load
event (being fired during the completion of a future) having problems when the chunk is requested, but this seems to be occuring on the TickEvent.ServerTickEvent
end phase (post server tick event). The mod is also checking that the block is loaded before requesting the block state for it as well so, apart from not using the world tick event, I can't really see anything wrong with the implementation as is.
Tested 0.43, still present.
Noticed some changed behavior tho. 1st of all preapring world spawn can now also hang.
Second the server still accepts commands while hanging world gen (before it was unrespsonsive).
This leads to another error when stoping the server while world gen hangs:
https://www.dropbox.com/s/do4sxks8qe86ltg/latest.log?dl=0
An example of the second case.