Villager Force load POI Lag
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 4.4k
- Forks
- 623
- PR merge metrics
- No merged PRs in 30d
Description
Profile link
Description of issue
Ok, I am getting this weird stacktrace here
PID: 194 | Suspended: false | Native: false | State: WAITING
Stack:
java.base@21.0.3/jdk.internal.misc.Unsafe.park(Native Method)
java.base@21.0.3/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkHolderManager.loadPoiChunk(ChunkHolderManager.java:1170)
net.minecraft.world.entity.ai.village.poi.PoiManager.getOrLoad(PoiManager.java:99)
net.minecraft.world.entity.ai.village.poi.PoiManager.getType(PoiManager.java:354)
net.minecraft.world.entity.ai.behavior.PoiCompetitorScan.lambda$create$4(PoiCompetitorScan.java:28)
net.minecraft.world.entity.ai.behavior.PoiCompetitorScan$$Lambda/0x000072072e095888.trigger(Unknown Source)
net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder$1.trigger(BehaviorBuilder.java:42)
net.minecraft.world.entity.ai.behavior.OneShot.tryStart(OneShot.java:17)
net.minecraft.world.entity.ai.Brain.startEachNonRunningBehavior(Brain.java:451)
net.minecraft.world.entity.ai.Brain.tick(Brain.java:403)
net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:268)
net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:262)
net.minecraft.world.entity.Mob.serverAiStep(Mob.java:982)
net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3507)
net.minecraft.world.entity.Mob.aiStep(Mob.java:705)
net.minecraft.world.entity.AgeableMob.aiStep(AgeableMob.java:155)
net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3206)
net.minecraft.world.entity.Mob.tick(Mob.java:472)
net.minecraft.world.entity.npc.Villager.tick(Villager.java:310)
net.minecraft.world.entity.Entity.rideTick(Entity.java:3003)
net.minecraft.world.entity.LivingEntity.rideTick(LivingEntity.java:3758)
net.minecraft.server.level.ServerLevel.tickPassenger(ServerLevel.java:1475)
net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1437)
net.minecraft.server.level.ServerLevel$$Lambda/0x000072072dccf320.accept(Unknown Source)
net.minecraft.world.level.Level.guardEntityTick(Level.java:1469)
net.minecraft.server.level.ServerLevel.lambda$tick$4(ServerLevel.java:846)
net.minecraft.server.level.ServerLevel$$Lambda/0x000072072d89a500.accept(Unknown Source)
io.papermc.paper.threadedregions.RegionizedWorldData.forEachTickingEntity(RegionizedWorldData.java:582)
net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:827)
net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1933)
net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:473)
net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1756)
io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:492)
io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:440)
ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:540)
java.base@21.0.3/java.lang.Thread.runWith(Thread.java:1596)
java.base@21.0.3/java.lang.Thread.run(Thread.java:1583)
Plugin and Datapack List
Server Plugins (1): Goliath
Server config files
Paste configs or paste.gg link here!
Folia version
dev 1.21.1
Other
The villager was a passenger, i located the chunk and it was riding a minecart, there was a player in front of the villager, and a zombie as well, i dont know if this is reproducable.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the stack trace at ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkHolderManager.loadPoiChunk and net.minecraft.world.entity.ai.village.poi.PoiManager.getOrLoad, then follow the villager AI path through PoiCompetitorScan. Try to reproduce the lag with a villager riding a minecart near a player and zombie on Folia dev 1.21.1. Done should identify a reproducible cause and a verified resolution for the POI load stall.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100