Tiquality

Tiquality

82.2k Downloads

Lags on server

bigenergy opened this issue ยท 16 comments

commented

After the server is running, it freezes.
Log:
2018-12-23-4.log

commented

I'd also like the crash report that comes with it. Can you also show me what's happening in the following chunks?

[21:38:40] [pool-8-thread-15/WARN] [tiquality]: There are too many owners in this chunk: 0 X=-146 Z=-178
[21:38:40] [pool-8-thread-15/WARN] [tiquality]: All tracking elements in this chunk have been removed to prevent undefined behavior.
[21:38:46] [pool-8-thread-4/WARN] [tiquality]: There are too many owners in this chunk: 0 X=-147 Z=-179
[21:38:46] [pool-8-thread-4/WARN] [tiquality]: All tracking elements in this chunk have been removed to prevent undefined behavior.
[21:38:47] [pool-8-thread-11/WARN] [tiquality]: There are too many owners in this chunk: 0 X=-146 Z=-177
[21:38:47] [pool-8-thread-11/WARN] [tiquality]: All tracking elements in this chunk have been removed to prevent undefined behavior.

Using /tq info point to detect the chunks' owners.

It looks like there are more than 120 different people building in that chunk, which seems highly unlikely.

commented

Server does not respond to commands

commented

The watchdog thread should kill the server if it's hanging for more than 120 (default) seconds on a single tick.
The watchdog should generate a crash report. Alternatively you can also try to dump a stacktrace of what the server is doing using VisualVM.

commented

Are you able to reproduce the bug and send me a stacktrace?

commented

my server.prop max-tick-time=-1

commented
commented

This does not help me much, as I cannot see what is going on. Can you set the max-tick-time to something other than -1 (Like 120) ?

By setting it to -1 the server will hang forever, and the watchdog will not kill the process if it hangs, this is only useful for debugging a testing environment, and not in production servers.

commented

You're right, this is totally possible without sponge's chunk system! I have updated the code accordingly.

commented
commented

Can you send the full log?

commented

Can you send the full log?

debug.log

commented

I honestly have no clue what the crap is going on. The only difference is that I am ticking the blocks later in time. Maybe that has something to do with it. -Investigating.

commented

Whew, this is a complicated one.

One thing that tipped me off was

java.lang.IllegalArgumentException: Cannot get property PropertyEnum{name=variant, clazz=class net.minecraft.block.BlockPlanks$EnumType, values=[oak, spruce, birch, jungle]} as it does not exist in BlockStateContainer{block=minecraft:air, properties=[]} */

What I think happened is that in your sponge config you have deny-chunk-requests set to true.

I'm guessing that this happened:
Big user claim > user builds a queue because his base is big > A random leaf block update is queued inside his claim > the chunk the leaf update was queued for unloads > the leaf block update is executed, as it's made it's way through the queue > Tiquality attempts to tick it, but sponge returns a fake empty chunk > the fake empty chunks says the block is air, while it in fact is not > error

Can you try disabling deny-chunk-requests in the sponge config and see if that works? If it does, I should be able to fix the issue for a future release

commented

deny-chunk-requests=false

commented

Hmmm... I threw the error in Google and saw alot of errors already existing in 1.10.2

java.lang.IllegalArgumentException: Cannot get property PropertyBool{name=check_decay, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in

Are you able to reproduce this error without Tiquality aswell?