SparklyPower / SparklyPaper

✨ "Ooooh, sparkly paper!" - SparklyPower's Paper fork, making large servers snappier with high-performance optimizations and improvements!
https://sparklypower.net/
118 stars 12 forks source link

Bug #43

Open Godl1nk opened 3 days ago

Godl1nk commented 3 days ago

[03:12:23 ERROR]: [ca.spottedleaf.moonrise.common.util.TickThread] Thread Sparky World Thread [world_nether] failed main thread check: Accessing poi chunk off-main @ world world chunkX: -1 chunkZ: -2 - Is tick thread? true; Is server level tick thread? true; Currently ticking level: world_nether; Is iterating over levels? true; Are we going to hard throw? false java.lang.Throwable: null at ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread(TickThread.java:50) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.getOrLoad(PoiManager.java:88) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.release(PoiManager.java:342) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.lambda$releasePoi$8(Villager.java:844) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[?:?] at net.minecraft.world.entity.npc.Villager.releasePoi(Villager.java:835) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.behavior.SetWalkTargetFromBlockMemory.lambda$create$0(SetWalkTargetFromBlockMemory.java:46) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder$1.trigger(BehaviorBuilder.java:42) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.behavior.OneShot.tryStart(OneShot.java:17) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.Brain.startEachNonRunningBehavior(Brain.java:477) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.Brain.tick(Brain.java:437) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:364) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:348) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.Mob.serverAiStep(Mob.java:972) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3605) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.Mob.aiStep(Mob.java:713) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.AgeableMob.aiStep(AgeableMob.java:155) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3314) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.Mob.tick(Mob.java:474) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.tick(Villager.java:410) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1295) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.level.ServerLevel.lambda$tick$5(ServerLevel.java:744) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:50) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:724) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.MinecraftServer.lambda$tickChildren$18(MinecraftServer.java:1841) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.base/java.lang.Thread.run(Thread.java:1570) ~[?:?] [03:12:23 ERROR]: [ca.spottedleaf.moonrise.common.util.TickThread] Thread Sparky World Thread [world_nether] failed main thread check: Accessing poi chunk off-main @ world world chunkX: -1 chunkZ: -2 - Is tick thread? true; Is server level tick thread? true; Currently ticking level: world_nether; Is iterating over levels? true; Are we going to hard throw? false java.lang.Throwable: null at ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread(TickThread.java:50) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.get(PoiManager.java:74) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.isVillageCenter(PoiManager.java:367) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.updateDistanceTracking(PoiManager.java:61) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.setDirty(PoiManager.java:390) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at ca.spottedleaf.moonrise.patches.chunk_system.level.poi.PoiChunk.lambda$parse$3(PoiChunk.java:189) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiSection.release(PoiSection.java:126) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.village.poi.PoiManager.lambda$release$11(PoiManager.java:343) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at java.base/java.util.Optional.map(Optional.java:260) ~[?:?] at net.minecraft.world.entity.ai.village.poi.PoiManager.release(PoiManager.java:343) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.lambda$releasePoi$8(Villager.java:844) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[?:?] at net.minecraft.world.entity.npc.Villager.releasePoi(Villager.java:835) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.behavior.SetWalkTargetFromBlockMemory.lambda$create$0(SetWalkTargetFromBlockMemory.java:46) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder$1.trigger(BehaviorBuilder.java:42) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.behavior.OneShot.tryStart(OneShot.java:17) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.Brain.startEachNonRunningBehavior(Brain.java:477) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.ai.Brain.tick(Brain.java:437) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:364) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.customServerAiStep(Villager.java:348) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.Mob.serverAiStep(Mob.java:972) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:3605) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.Mob.aiStep(Mob.java:713) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.AgeableMob.aiStep(AgeableMob.java:155) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:3314) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.Mob.tick(Mob.java:474) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.entity.npc.Villager.tick(Villager.java:410) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1295) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.level.ServerLevel.lambda$tick$5(ServerLevel.java:744) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:50) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:724) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at net.minecraft.server.MinecraftServer.lambda$tickChildren$18(MinecraftServer.java:1841) ~[sparky-1.21.1.jar:1.21.1-DEV-0b01e43] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.base/java.lang.Thread.run(Thread.java:1570) ~[?:?]

    This is just SparklyPaper renamed, this error comes if u use plugin like SafariNet which catches mobs, happens only on VILLAGERS as if u catch a villager that has a work station and spawn it in another world, it will attempt to tick the work station block with new world's thread 
MrPowerGamerBR commented 3 days ago

I wonder how SafariNet is moving mobs (villagers) to other worlds... I need to test if this...

If these two use cases above are not affected, then I think it would be an issue with how SafariNet handles mobs

Godl1nk commented 2 days ago

Well, they use NBT way i think

image image

Godl1nk commented 18 hours ago

image Tape solution ? well im not super experienced, please let me know if this can cause any problem or has any problem