Interferance API Crash -- Watchdog Tick
itsdinkd opened this issue · 4 comments
Dedicated server is getting a watchdog crash, according to the stack trace, its mentioning the Interference API
https://gist.github.com/itsdinkd/ffbabd815c9d954616ea96ff87571da8
java.lang.Error: Watchdog
at Not Enough Crashes deobfuscated stack trace.(1.17.1+build.61)
at jdk.internal.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
at net.minecraft.util.thread.ThreadExecutor.waitForTasks(ThreadExecutor:146)
at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor:136)
at net.minecraft.server.world.ServerChunkManager.getChunkBlocking(ServerChunkManager:3775)
at net.minecraft.server.world.ServerChunkManager.getChunk(ServerChunkManager:3671)
at net.minecraft.world.World.getChunkLithium(World:13116)
at net.minecraft.world.World.getChunk(World:13102)
at net.minecraft.world.World.getBlockState(World:13594)
at net.minecraft.world.BlockView.method_17743(BlockView:74)
at net.minecraft.class_1922$$Lambda$18076/0x000000080391fd70.apply(Unknown Source)
at net.minecraft.world.BlockView.raycast(BlockView:193)
at net.minecraft.world.BlockView.raycast(BlockView:73)
at net.minecraft.entity.Entity.raycast(Entity:1546)
at net.darktree.interference.impl.LookAtTickHandle.execute(LookAtTickHandle.java:29)
at net.darktree.interference.impl.LookAtTickHandle$$Lambda$8405/0x00000008024caf60.onEndTick(Unknown Source)
The interference mod is trying to a load a chunk for a block the player is looking at (this is the raycast part).
This leads to the Lithium modified chunk loading.
The vanilla minecraft server watchdog process detects that the tick takes more than 60 seconds and so crashes the server.
The part that takes more than 60 secs is the chunk loading which seems to be stuck waiting (Unsafe.park) for a chunk load while the rest of your thread dump shows no other thread is actually doing any chunk loading. So it would probably wait forever without the watchdog?
If this is not a bug in the interference mod or whatever has set a listener for the "look at event" it provides, then this looks to be a bug in the changed lithium chunk loading. Or it could be a bad interaction between the two.
It could also just be a plain old vanilla bug that these are tickling.
Either way it is not a fabric api problem.