Issue on server 1.18.1 - Fabric 0.12.12
TheQKnight opened this issue ยท 12 comments
Getting really bad lag on a server and spark profiler doesnt seem to have any clue whats happening.
server seems to lag really bad then crash.
spark profiler results for those 5 seconds i could get it in for were this https://spark.lucko.me/zBSYWOEMtr
The repeated log warnings are coming from a mixin in the main server loop.
It is consuming 80% of your cpu.
net.minecraft.server.MinecraftServer.handler$zdh000$modifiedRunLoop
The mod author that has introduced the mixin,
hasn't included the mod name in the mixin so we can only guess which mod is doing it.
Could you send full logs and the crash report? Both seem to be cut off in the pastebin you linked.
Yes sorry, heres the log: https://pastebin.com/LK8HejqH
Actually just happened again and this is the crash report: https://pastebin.com/EswULSvv
That crash isn't a real crash.
It is the server watchdog stopping the server because the max tick length from your server.properties has been exceeded.
(I think the idea is you are supposed to detect the server stopping in this way and restart it?)
But, before your performance information showed it spending 80% of its time within that mixin logging warnings.
This time it has dumped with the main server thread waiting for something to be loaded (Unsafe.park means the thread is waiting for something else in this case a Future).
java.lang.Error: Watchdog
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
at [email protected]/java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1864)
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
at [email protected]/java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1898)
at [email protected]/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2117)
at net.minecraft.class_4698.method_23700(class_4698.java:84)
at net.minecraft.class_3977.method_23696(class_3977.java:79)
at net.minecraft.class_3898.method_17979(class_3898.java:905)
at net.minecraft.class_3898.method_17256(class_3898.java:557)
at net.minecraft.class_3898$$Lambda$6359/0x0000000801987510.get(Unknown Source)
at [email protected]/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
at net.minecraft.class_1255.method_18859(class_1255.java:151)
at net.minecraft.class_3215$class_4212.method_18859(class_3215.java:552)
at net.minecraft.class_1255.method_16075(class_1255.java:125)
at net.minecraft.class_3215$class_4212.method_16075(class_3215.java:561)
at net.minecraft.class_3215.method_19492(class_3215.java:282)
at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:768)
at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:756)
at net.minecraft.class_1255.method_5383(class_1255.java:110)
at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:740)
at net.minecraft.server.MinecraftServer.handler$zdh000$modifiedRunLoop(MinecraftServer.java:2865)
at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:663)
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270)
at net.minecraft.server.MinecraftServer$$Lambda$6050/0x00000008017d6c98.run(Unknown Source)
net.minecraft.class_4698.method_23700
is StorageIoWorker.getNbt()
What is at the bottom of your log with this "crash"?
Is it again adding lots of warnings to the log causing lag?
I think your best bet is to try to find out which mod is adding that mixin so we can determine what those warnings are.
Using "not enough crashes" mod will sometimes show which mod is responsible for a mixin, otherwise you will have to remove mods individually until you work out which mod is adding that mixin (and/or causing the lag).
That crash isn't a real crash.
It is the server watchdog stopping the server because the max tick length from your server.properties has been exceeded. (I think the idea is you are supposed to detect the server stopping in this way and restart it?)
But, before your performance information showed it spending 80% of its time within that mixin logging warnings.
This time it has dumped with the main server thread waiting for something to be loaded (Unsafe.park means the thread is waiting for something else in this case a Future).
java.lang.Error: Watchdog at [email protected]/jdk.internal.misc.Unsafe.park(Native Method) at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) at [email protected]/java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1864) at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463) at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434) at [email protected]/java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1898) at [email protected]/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2117) at net.minecraft.class_4698.method_23700(class_4698.java:84) at net.minecraft.class_3977.method_23696(class_3977.java:79) at net.minecraft.class_3898.method_17979(class_3898.java:905) at net.minecraft.class_3898.method_17256(class_3898.java:557) at net.minecraft.class_3898$$Lambda$6359/0x0000000801987510.get(Unknown Source) at [email protected]/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) at net.minecraft.class_1255.method_18859(class_1255.java:151) at net.minecraft.class_3215$class_4212.method_18859(class_3215.java:552) at net.minecraft.class_1255.method_16075(class_1255.java:125) at net.minecraft.class_3215$class_4212.method_16075(class_3215.java:561) at net.minecraft.class_3215.method_19492(class_3215.java:282) at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:768) at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:756) at net.minecraft.class_1255.method_5383(class_1255.java:110) at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:740) at net.minecraft.server.MinecraftServer.handler$zdh000$modifiedRunLoop(MinecraftServer.java:2865) at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:663) at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270) at net.minecraft.server.MinecraftServer$$Lambda$6050/0x00000008017d6c98.run(Unknown Source)
net.minecraft.class_4698.method_23700
isStorageIoWorker.getNbt()
What is at the bottom of your log with this "crash"? Is it again adding lots of warnings to the log causing lag?
I think your best bet is to try to find out which mod is adding that mixin so we can determine what those warnings are. Using "not enough crashes" mod will sometimes show which mod is responsible for a mixin, otherwise you will have to remove mods individually until you work out which mod is adding that mixin (and/or causing the lag).
Yeah Thats what i've been doing so far. I'll update you with any more info if I find it.
Heres another crash with not enough crashes installed
Crash: https://pastebin.com/8SBLA0zw
Log: https://pastebin.com/yQj4zJDJ
There is nothing new in that crash.
Its again the server watchdog stopping the server because the tick is longer than 1 minute.
The main server thread is doing chunk loading like before.
I reckon these are the warnings that was showing 80% utilization before.
[17:59:25] [Worker-Main-18/INFO]: Preparing spawn area: 38%
[17:59:25] [Server thread/ERROR]: Unknown structure start: castle_dungeons:castle
[17:59:25] [Server thread/WARN]: Found reference to unknown structure 'castle_dungeons:castle' in chunk [7, 24], discarding
See:
#1852
https://bugs.mojang.com/browse/MC-194811
You should try fixing these missing structures on a backup of your world to see if that solves your issue.
๐ We use the issue tracker exclusively for final bug reports and feature requests. However, this issue appears to be better suited for either a discussion thread, or a message on our discord server. Please post your request on one of these, and the conversation can continue there.