Fabric API

Fabric API

106M Downloads

Interferance API Crash -- Watchdog Tick

itsdinkd opened this issue · 4 comments

commented

Dedicated server is getting a watchdog crash, according to the stack trace, its mentioning the Interference API

https://gist.github.com/itsdinkd/ffbabd815c9d954616ea96ff87571da8

commented

What does the "interference api" have to do with fabric api?

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

commented

Thank you. That was very educational, appreciate it.

commented

What does the "interference api" have to do with fabric api?

Oh? is it not apart of fabric API? apparently my google skills are crap. I apologize.