Skip to content

Fix crash on performWorldGenSpawning#349

Open
blnchdev wants to merge 1 commit intoRayTrace082:1.18.2from
blnchdev:1.18.2
Open

Fix crash on performWorldGenSpawning#349
blnchdev wants to merge 1 commit intoRayTrace082:1.18.2from
blnchdev:1.18.2

Conversation

@blnchdev
Copy link
Copy Markdown

at net.minecraft.server.level.ServerLevel.handler$chc000$cupboard$OnaddEntity(ServerLevel.java:1656) ~[server-1.20.1-20230612.114412-srg.jar%23543!/:?]
at net.minecraft.server.level.ServerLevel.m_8872_(ServerLevel.java) ~[server-1.20.1-20230612.114412-srg.jar%23543!/:?]
at net.minecraft.server.level.ServerLevel.m_7967_(ServerLevel.java:815) ~[server-1.20.1-20230612.114412-srg.jar%23543!/:?]
at untamedwilds.entity.ComplexMob.breed(ComplexMob.java:239) ~[untamedwilds-1.20.1-4.0.4.jar%23529!/:4.0.4]
at untamedwilds.entity.relict.EntitySpitter.updateAttributes(EntitySpitter.java:353) ~[untamedwilds-1.20.1-4.0.4.jar%23529!/:4.0.4]
at untamedwilds.entity.ComplexMob.m_6518_(ComplexMob.java:422) ~[untamedwilds-1.20.1-4.0.4.jar%23529!/:4.0.4]
at net.minecraftforge.event.ForgeEventFactory.handler$dgh000$blueprint$onFinalizeSpawn(ForgeEventFactory.java:1569) ~[forge-1.20.1-47.4.10-universal.jar%23548!/:?]
at net.minecraftforge.event.ForgeEventFactory.onFinalizeSpawn(ForgeEventFactory.java:285) ~[forge-1.20.1-47.4.10-universal.jar%23548!/:?]
at untamedwilds.world.FaunaSpawn.performWorldGenSpawning(FaunaSpawn.java:151) ~[untamedwilds-1.20.1-4.0.4.jar%23529!/:4.0.4]

performWorldGenSpawning() -> onFinalizeSpawn() -> EntitySpitter.updateAttributes() -> ComplexMob.breed()

WorldGen spawning causes some ComplexMob instances to breed (maybe due to wantsToBreed always returning true?), which is illegal when called from a worldGen thread

So we just return early on breed() if the caller isn't the server main thread, this fixes the crash but I'm unsure if any features are affected

performWorldGenSpawning -> onFinalizeSpawn -> EntitySpitter.updateAttributes -> ComplexMob.breed

This deadlocks the server thread!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant