Architectury API (Fabric/Forge/NeoForge)

Architectury API (Fabric/Forge/NeoForge)

158M Downloads

Crash When Booting server

sargeow opened this issue ยท 7 comments

commented

*FORGE 40.1.68 (1.18.2)

*It's on a heavily modded server, crashing on start-up.

Crash Report* https://gist.github.com/sargeow/76b082508e36536448c712053ae15f42
Server Log* https://gist.github.com/sargeow/379a3acbf3bb12a5c84f2656b9c7e4b1

commented

lemon seems to have sorted it out, haven't tested arch by it's self however i'd assume it works fine :) if the issue does persist i'm sure ill be back :P

commented

Can you reproduce this issue with only Architectury and Forge?
If yes, can you reproduce this issue with only Architectury and Forge using Forge version 40.1.14?

The stacktrace points more to BiomeMakeover, so @Lemonszz might want to be aware of this

commented

can do! give me a minute to do all that and ill let you know the result!

commented

If I'm reading the FastUtil docs correctly, this is because FireBlock's Object2IntOpenHashMap has a default size of 16^2 (256) that doesn't get resized if too many values are added.

I can solve this on Biome Makeover's side, but a flammability API in Architectury would go a long way to make sure this doesn't come up again.

commented

Instances of this class use a hash table to represent a map. The table is filled up to a specified load factor, and then doubled in size to accommodate new entries.
https://fastutil.di.unimi.it/docs/it/unimi/dsi/fastutil/objects/Object2IntOpenHashMap.html

no, it should double in size when it fills up... or is this a custom impl and not using fastutil's one

commented

Fastutils maps aren't thread-safe, this is a pretty typical crash for 2 threads trying to insert simultaneously. Keep in mind that modloading is parallelized in Forge.

commented

Ah I see, I misinterpreted a comment in their source.

Not being thread-safe makes sense.