McJtyMods / InControl

Be In Control of Mob Spawns and others
MIT License
46 stars 18 forks source link

CME with Terraforged worldgen #300

Open jeremiahwinsley opened 2 years ago

jeremiahwinsley commented 2 years ago

Incontrol version 5.2.2 Forge 36.2.19

Modpack: ATM6 1.8.12

This is probably a compat issue with Terraforged, but one of our players got a CME from RuleCache: https://gist.github.com/jeremiahwinsley/2b64f8ff7850b4b2efb4b6aa70076b78

Terraforged seems to be doing some multithreading for mob generation, and RuleCache isn't thread safe.

Won-Ton commented 2 years ago

Heyo!

Parts of chunk generation happen off main-thread. That isn't a TF thing, that's how vanilla's chunk provider works - you can see in the stack trace that the execution is inside a ForkJoin thread before TF's code is even called.

If this mod is meant to handle mobs spawned in world-gen then it needs to be threadsafe. If it's only concerned with mobs spawned in the game loop then you can check the world type provided by forge's EntitySpawnEvent. During world-gen that will be a WorldGenRegion rather than the server-world.

Hope that helps!

TNTUP commented 2 years ago

Can confirm this but on Mohist platform (jremiahwinsley's uses Forge so that neither forge/mohist fault) crash-2022-02-02_00.38.38-server.txt

Better reporting this to Terraforged devs?