Updating map data wrap crashing
Tybe571 opened this issue ยท 2 comments
I'm running a server through play.hosting with the modpack Prominence 2: hasturian era. v3.1.20hf
and while loading chunks looking for buried treasure, the server crashed, and then crashes again upon booting up because I'm still holding the map raised up when spawning in.
Neruina mod version: 1.3.0-fabric+1.18.2-1.20.1
Updating neruina to 2.2.11-fabric+1.20.1 Does not change/fix.
crash-2025-05-30_04.13.03-server.txt
crash-2025-05-30_04.04.16-server.txt
crash-2025-05-30_03.58.05-server.txt
crash-2025-05-30_03.54.22-server.txt
crash-2025-05-30_03.50.42-server.txt
crash-2025-05-30_04.17.53-server.txt
Hopefully this is user error and not a server fucked for good.
Update, I have manually worked around the problem.
Used NBTExplorer to delete the map from my inventory and the server ran normally.
This is caused by the server watchdog killing the server thread as it's taking too long to process a given action in a tick. Neruina can't and shouldn't try to stop this as it's very easy for this to break in an even worse way.
Here's the breakdown of the thread dump:
Server is just waiting:
"Server thread" prio=5 Id=70 TIMED_WAITING on java.lang.String@5ed6d41f
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
- waiting on java.lang.String@5ed6d41f
at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
at knot//MC//net.minecraft.util.thread.ThreadExecutor.waitForTasks(ThreadExecutor.java:151)
at knot//MC//net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:141)
Get a chunk off the main thread and wait until it's returned:
at knot//MC//net.minecraft.server.world.ServerChunkManager.getChunkBlocking(ServerChunkManager.java:2788)
Worker thread to get the chunk is still going:
"Worker-Main-10" daemon prio=4 Id=114 RUNNABLE
at knot//net.minecraft.util.math.MathHelper.lerp2(MathHelper.java:620)
at knot//net.minecraft.util.math.MathHelper.lerp3(MathHelper.java:632)
at knot//net.minecraft.ChunkNoiseSampler$Cache2Dclass_5917.sample(ChunkNoiseSampler.java:633)
at knot//net.minecraft.DensityFunctionTypes$RegistryEntryHolderclass_6932.sample(DensityFunctionTypes.java:270)
at knot//net.minecraft.DensityFunctionTypes$RegistryEntryHolderclass_6917.sample(DensityFunctionTypes.java:1119)
at knot//net.minecraft.DensityFunctionTypes$RegistryEntryHolderclass_6932.sample(DensityFunctionTypes.java:270)
at knot//net.minecraft.DensityFunctionTypes$RegistryEntryHolderclass_6917.sample(DensityFunctionTypes.java:1121)
at knot//net.minecraft.DensityFunctionTypes$RegistryEntryHolderclass_6933.sample(DensityFunctionTypes.java:723)
...
Installing the async map locator mod will likely fix this in future as that allows the server thread to continue while the chunks are being queried in the background rather than blocking the server thread.