Creators-of-Create / Create

[Forge Mod] Building Tools and Aesthetic Technology
MIT License
2.91k stars 909 forks source link

[Crash] Mechanical saw contraption crashes dedicated server when attempting to saw mangrove roots #5785

Open RaidenKoizuma opened 11 months ago

RaidenKoizuma commented 11 months ago

Describe the Bug

Mechanical saw contraption w/ item vaults and a portable storage interface that saws mangrove roots and has deployers which replants mangrove propagules crashes servers consistently.

Currently occuring on a dedicated server.

Reproduction Steps

  1. Set up a mechnaical saw contraption connected to 3x3 item vault w/ setup portable storage iterface on a minecart that goes back and forth. Also include line of deployers that replants.
  2. Let it run back and forth. It should crash when it hits the mangrove roots.
  3. ...

Expected Result

Not to crash

Screenshots and Videos

image

Crash Report or Log

https://pastebin.com/pGSqtvqn

Operating System

Windows 10

Mod Version

0.5.1f

Minecraft Version

1.20.1

Forge Version

47.2.6

Other Mods

No response

Additional Context

Other Crash: https://pastebin.com/z6TXXkLn

drwoops commented 11 months ago

This is not a usual crash. It is the watchdog thread noticing that a tick is taking way too long to process and forcing a crash. Probably 2 threads are deadlocked. Your only option is to disable mods until hopefully you find the culprit.

AaronSpinner commented 5 months ago

I got issue that seems to be the same one. Our server started crashing when we approch a treefarm, build with create mechanical saw. The saw is trying to cut a mangroove tree root block. as long as we do not load that are we are fine. but as soon we approach the farm the server crashes.

Anny suggestions on how to fix it?

Plite7067 commented 5 months ago

Can you post the servers latest.log file and crash report

AmmoniumX commented 3 months ago

Had a similar crash happen on server due to create contraption with mechanical saw, causing server to freeze and crash due to watchdog: https://pastebin.com/y5kqvQ04 This is just a wild guess, but I think if the saw tries to break too many logs at once, it fails, but keeps trying repeatedly, causing the freeze?

SgiobairOg commented 1 month ago

Adding on to this one because it seems to be the same issue.

Logs are in the following Gist and I'll be having a look at the code later today. I'm suspecting, based on what I've seen so far that @AmmoniumX is correct and it has to do with the saws trying to account for too many tree blocks. It also seems like those checks may be happening whether the contraption is moving or not as we're seeing tick lag. Crashes are only happening with a moving contraption though.

https://gist.github.com/SgiobairOg/921c05e4e2d505840215dd918a1e8b6f

SgiobairOg commented 1 month ago

@drwoops I did some testing today and can confirm it occurs with only the create mod installed (world edit was also installed to facilitate setting up my tests).

I've added the additional logs to my gist.

SgiobairOg commented 1 month ago

What I'm seeing, as I'm testing things is that it seems like, for a given server, there is a limit to the number of blocks you can break simultaneously without lagging the tick so hard that the watchdog kicks in.

So far on a dedicated server with 10GB DDR4 I've found that 769 blocks in a "tree" will crash, 737 blocks will lag severely but succeed, 641 will succeed with no problem. (Sorry for the weird numbers, my test setup was a single block with some portion of a chunk above it).

When our private server crashed I'm estimating it likely tried to simultaneously cut around 400 blocks, that server's using 16GB DDR3

This may also impact drills but I haven't tested and it would be out of scope for this issue.

SgiobairOg commented 1 month ago

Out of interest I just ran 800 drills against a uniform surface on a mechanical pulley and aside from the existence of the drills killing my framerate there was no problem.

So it seems like focus would be on the calculations Create does to identify and verify all of the tree blocks to break rather than the actual break itself.

SgiobairOg commented 1 month ago

Some spark data from a short and simple run of a single saw through "trees", one each, of 64, 128, and 256 blocks. https://spark.lucko.me/a7yuGxcfQh