Fabric API

Fabric API

106M Downloads

Issue on server 1.18.1 - Fabric 0.12.12

TheQKnight opened this issue ยท 12 comments

commented

Getting really bad lag on a server and spark profiler doesnt seem to have any clue whats happening.

https://pastebin.com/MzuxNchW

server seems to lag really bad then crash.

commented

spark profiler results for those 5 seconds i could get it in for were this https://spark.lucko.me/zBSYWOEMtr

commented

Seems like writing logs to file is taking very long

commented

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.

commented

Could you send full logs and the crash report? Both seem to be cut off in the pastebin you linked.

commented

Could not find the crash report. might have been deleted by accident

commented

Yes sorry, heres the log: https://pastebin.com/LK8HejqH

commented

Actually just happened again and this is the crash report: https://pastebin.com/EswULSvv

commented

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).

commented

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).

Yeah Thats what i've been doing so far. I'll update you with any more info if I find it.

commented

Heres another crash with not enough crashes installed
Crash: https://pastebin.com/8SBLA0zw
Log: https://pastebin.com/yQj4zJDJ

commented

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.

commented

๐Ÿ‘‹ 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.