MCMT

MCMT

95.3k Downloads

Server watchdog being tripped by long ticktimes, as a result of a mod failing

ptk2003 opened this issue ยท 10 comments

commented

I try testing performance by some build of MFR (now 'industrial foregoing') tree farms and when farm count over 30, server stopping by watchdog tick time.
1.16.1, forge 108, crash report attachment.

maybe this time should be increased 10 times?)
crash-2020-08-13_00.24.41-server.txt

commented

Hi, Can you post the full debug log if you have it.

From the looks of it the server went into a lockup state as no ticks were being executed (I cannot actually see a running server thread in the crash report provided which is REALLY odd)

Tick time should never pass 60 seconds under normal gameplay; the way this mod works is that it allows exceptions to be continued (which is good for debugging, and for occasional glitches) but what can happen is that specific things can get locked in an always error on tick state.

Because of this, a crash is normally more of a wall of exceptions -> crash rather than the normal single exception crash.

If you don't have it; I'll spin up an environment with the given mod list and see what I can see what I can do (But I have a backlog of stuff I'm working on trying to repro ATM so logs would helps speed up bugfinding a lot)

commented

Hi, yeah, i have it.

After remove mod i start server (join in world, get 100500 warn 'server overload'), stop it, re-add mod. After join world i get crash 'Exception in server tick loop'.
after second restart server i get crash 'Watching Server'
In test builds used machines from 'industrial foregoing' and energy conduits from 'mekanism v10'
crash-2020-08-13_22.14.33-server.txt
crash-2020-08-13_22.15.33-server.txt

debug.log

commented

Ok, IDK how you've managed to make mekanism's conduits break when I havent, but congrats

mekanism.common.lib.transmitter.acceptor.NetworkAcceptorCache.commit is the faulting component; and it's being triggered by onPostServerTick

I have modified the execution of onPostServerTick in the latest release (0.11.19); try using that and see if it fixes it. What I guess is happening is that the world is being pushed into the execution pool, but not being executed before the postTick is being called, maybe

If 0.11.19 fixes it please say, if not I'll debug this next.

commented
commented

not found new version on curseforge, i build 'jmt_mcmt-1.16.1-0.11.19' by gradlew from your source.

tomorrow i try remove all mekanism pipes and try again

crash-2020-08-14_02.32.24-server.txt
crash-2020-08-14_02.33.23-server.txt
debug.log
latest.log

commented

It should be up now; sorry for the delay

commented

I've been doing some more testing

2020-08-14_18 47 50

This is Refined Storage, Mekanism, and AE2 all in in one screenshot, so it seems unlikely that it is caused by them directly

This is with MCMT-1.16.1-0.11.20

I'll start going through the other mods in your modlist and see if adding any of them starts to break this.

commented

Possibly repro'd

There is SOMETHING hellishly wrong with the world loader that can result in it locking up and the server thread waiting forever for a chunk it won't ever get because something in it's own chunk loading system has borked

I can't see any MCMT code in the pathway, so I'm guessing that MCMT has managed to put mojangs code into some kind of very illegal state

But debugging this is going to be an absolute nightmare

commented

not actual now, removed this test world, thank you for help.

commented

This issue is fixed in two different ways now; firstly there is the forceLoad feature that will allow for overuling any internal loading glitches in the chunk handling (a20938c), and secondly PSCP was modified (11dcbfc) to play better with the default chunk loading/generation system, hopefully resulting in less deadlocks.

As such I'm closing this issue. If anyone encounters this again, please open a new issue as server watchdog trips with no specifics is kind of not a bug category I can link between

Thanks