Use coordinate-based locking to increase chunk system parallelism #74

Merged
Spottedleaf merged 1 commit from dev/locking into master 2023-05-15 04:46:24 +02:00
Spottedleaf commented 2023-05-13 06:21:13 +02:00 (Migrated from github.com)

See patch notes for implementation details.

This patch should massively increase performance in Folia due to the significantly better locking behavior.

As with mainline Folia, builds are not provided you must build it yourself. If you already know how to build regular Folia, just use
your git client to checkout to the dev/locking branch (and please verify via current HEAD that you have the latest from the branch).

Please report any issues with this branch on this PR.

See patch notes for implementation details. This patch should massively increase performance in Folia due to the significantly better locking behavior. As with mainline Folia, builds are not provided you must build it yourself. If you already know how to build regular Folia, just use your git client to checkout to the dev/locking branch (and please verify via current HEAD that you have the latest from the branch). Please report any issues with this branch on this PR.
Malfrador commented 2023-05-13 19:46:48 +02:00 (Migrated from github.com)

I did a bit of testing with this branch and bots joining + spawnRadius = 50k. Chunk loading seems to be smoother, which is nice.

However, in two out of three tries the server completely locked up after about 10 minutes.
For some time before that /tps showed a different region at ~2 TPS every time I ran it. After some time, one region apparently completely died, showing up at 5000 mspt.
after this it was also no longer possible to join (even though I was in a different region).

jstack dump of the unresponsive server

I did a bit of testing with this branch and bots joining + spawnRadius = 50k. Chunk loading seems to be smoother, which is nice. However, in two out of three tries the server completely locked up after about 10 minutes. For some time before that /tps showed a different region at ~2 TPS every time I ran it. After some time, one region apparently completely died, showing up at 5000 mspt. after this it was also no longer possible to join (even though I was in a different region). [jstack dump of the unresponsive server](https://github.com/PaperMC/Folia/files/11470258/dump.txt)
Spottedleaf commented 2023-05-13 20:19:10 +02:00 (Migrated from github.com)

How many regions? You may have hit the scheduler's limit.

How many regions? You may have hit the scheduler's limit.
Malfrador commented 2023-05-13 20:46:20 +02:00 (Migrated from github.com)

javaw_vuotdg7t0t
Well, 5. Which is also seems off considering its 194 bots with spawnradius 50k.

![javaw_vuotdg7t0t](https://github.com/PaperMC/Folia/assets/6106558/ecd92e96-78e5-48c1-9c69-1af06901e1a0) Well, 5. Which is also seems off considering its 194 bots with spawnradius 50k.
Spottedleaf commented 2023-05-13 23:36:32 +02:00 (Migrated from github.com)

I have reverted the change to the region shift, please try again.

I have reverted the change to the region shift, please try again.
Malfrador commented 2023-05-14 00:07:56 +02:00 (Migrated from github.com)

Did three tests again, no locking up. Highest mspt is at 14ms. Region count also seems a lot more plausible now, and gen rate went up massively. I guess that revert helped.
javaw_MSzQjWHCyx

Did three tests again, no locking up. Highest mspt is at 14ms. Region count also seems a lot more plausible now, and gen rate went up massively. I guess that revert helped. ![javaw_MSzQjWHCyx](https://github.com/PaperMC/Folia/assets/6106558/05798835-dc07-4c98-b5f8-4d1c55397547)
ricsal1 commented 2023-05-14 19:37:08 +02:00 (Migrated from github.com)

Got this on previous built, from 19h ago, might help.

log
[17:32:24] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3966, 42, 6380
[17:32:39] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3808, 53, 6448
[17:32:46] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3888, 62, 6448
[17:32:51] [Tuinity Chunk System Worker #3/ERROR]: [ChunkTaskScheduler] Chunk system error at chunk (-96,133), holder: NewChunkHolder{world=world, chunkX=-96, chunkZ=133, entityChunkFromDisk=false, lastChunkCompletion={chunk_class=net.minecraft.world.level.chunk.ProtoChunk,status=minecraft:liquid_carvers}, currentGenStatus=minecraft:liquid_carvers, requestedGenStatus=minecraft:full, generationTask=ChunkProgressionTask{class: io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask, for world: world, chunk: (-96,133), hashcode: 292180800, priority: COMPLETING, status: minecraft:features, scheduled: true}, generationTaskStatus=minecraft:features, priority=NORMAL, priorityLocked=false, neighbourRequestedPriority=NORMAL, effective_priority=NORMAL, oldTicketLevel=33, currentTicketLevel=33, totalNeighboursUsingThisChunk=9, fullNeighbourChunksLoadedBitset=3247203, chunkStatusRaw=0, currentChunkStatus=INACCESSIBLE, pendingChunkStatus=INACCESSIBLE, is_unload_safe=ticket_level, killed=false}, exception:
java.lang.Throwable: net.minecraft.ReportedException: Feature placement
	at io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.unrecoverableChunkSystemFailure(ChunkTaskScheduler.java:280) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.NewChunkHolder.lambda$setGenerationTask$4(NewChunkHolder.java:1691) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkProgressionTask.complete0(ChunkProgressionTask.java:95) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkProgressionTask.complete(ChunkProgressionTask.java:75) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:105) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.queue.RadiusAwarePrioritisedExecutor$Task.run(RadiusAwarePrioritisedExecutor.java:468) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:62) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
Caused by: net.minecraft.ReportedException: Feature placement
	at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:463) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	... 5 more
Caused by: java.lang.NullPointerException: Cannot read field "capturedTileEntities" because the return value of "net.minecraft.server.level.ServerLevel.getCurrentWorldData()" is null
	at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:565) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:558) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ImposterProtoChunk.getBlockEntity(ImposterProtoChunk.java:85) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.server.level.WorldGenRegion.getBlockEntity(WorldGenRegion.java:253) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity.setLootTable(RandomizableContainerBlockEntity.java:39) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.feature.MonsterRoomFeature.place(MonsterRoomFeature.java:111) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.feature.Feature.place(Feature.java:155) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.feature.ConfiguredFeature.place(ConfiguredFeature.java:25) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.placement.PlacedFeature.lambda$placeWithContext$4(PlacedFeature.java:52) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180) ~[?:?]
	at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) ~[?:?]
	at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithContext(PlacedFeature.java:51) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithBiomeCheck(PlacedFeature.java:37) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:445) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	... 5 more
[17:32:54] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3984, 45, 6289
[17:32:54] [Region Scheduler Thread #0/ERROR]: [io.papermc.paper.threadedregions.TickRegionScheduler] Region #25 centered at chunk [-247, 142] in world 'world' failed to tick:
java.lang.RuntimeException: Chunk system crash propagated from unrecoverableChunkSystemFailure
	at io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.lambda$unrecoverableChunkSystemFailure$1(ChunkTaskScheduler.java:303) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.threadedregions.RegionizedTaskQueue$PrioritisedQueue$ChunkBasedPriorityTask.executeInternal(RegionizedTaskQueue.java:511) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.threadedregions.RegionizedTaskQueue$PrioritisedQueue.executeTask(RegionizedTaskQueue.java:441) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.threadedregions.RegionizedTaskQueue$RegionTaskQueueData.drainTasks(RegionizedTaskQueue.java:271) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1523) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:360) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:385) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: net.minecraft.ReportedException: Feature placement
	at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:463) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.queue.RadiusAwarePrioritisedExecutor$Task.run(RadiusAwarePrioritisedExecutor.java:468) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:62) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
Caused by: java.lang.NullPointerException: Cannot read field "capturedTileEntities" because the return value of "net.minecraft.server.level.ServerLevel.getCurrentWorldData()" is null
	at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:565) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:558) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ImposterProtoChunk.getBlockEntity(ImposterProtoChunk.java:85) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.server.level.WorldGenRegion.getBlockEntity(WorldGenRegion.java:253) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity.setLootTable(RandomizableContainerBlockEntity.java:39) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.feature.MonsterRoomFeature.place(MonsterRoomFeature.java:111) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.feature.Feature.place(Feature.java:155) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.feature.ConfiguredFeature.place(ConfiguredFeature.java:25) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.placement.PlacedFeature.lambda$placeWithContext$4(PlacedFeature.java:52) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180) ~[?:?]
	at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) ~[?:?]
	at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?]
	at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
	at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithContext(PlacedFeature.java:51) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithBiomeCheck(PlacedFeature.java:37) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:445) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at io.papermc.paper.chunk.system.scheduling.queue.RadiusAwarePrioritisedExecutor$Task.run(RadiusAwarePrioritisedExecutor.java:468) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:62) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"]
[17:32:54] [Region shutdown thread/INFO]: [RegionShutdownThread] Awaiting scheduler termination for 60s
[17:32:54] [Region shutdown thread/INFO]: [RegionShutdownThread] Scheduler halted
[17:32:54] [Region shutdown thread/INFO]: Stopping server
Got this on previous built, from 19h ago, might help. <details> <summary>log</summary> ``` [17:32:24] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3966, 42, 6380 [17:32:39] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3808, 53, 6448 [17:32:46] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3888, 62, 6448 [17:32:51] [Tuinity Chunk System Worker #3/ERROR]: [ChunkTaskScheduler] Chunk system error at chunk (-96,133), holder: NewChunkHolder{world=world, chunkX=-96, chunkZ=133, entityChunkFromDisk=false, lastChunkCompletion={chunk_class=net.minecraft.world.level.chunk.ProtoChunk,status=minecraft:liquid_carvers}, currentGenStatus=minecraft:liquid_carvers, requestedGenStatus=minecraft:full, generationTask=ChunkProgressionTask{class: io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask, for world: world, chunk: (-96,133), hashcode: 292180800, priority: COMPLETING, status: minecraft:features, scheduled: true}, generationTaskStatus=minecraft:features, priority=NORMAL, priorityLocked=false, neighbourRequestedPriority=NORMAL, effective_priority=NORMAL, oldTicketLevel=33, currentTicketLevel=33, totalNeighboursUsingThisChunk=9, fullNeighbourChunksLoadedBitset=3247203, chunkStatusRaw=0, currentChunkStatus=INACCESSIBLE, pendingChunkStatus=INACCESSIBLE, is_unload_safe=ticket_level, killed=false}, exception: java.lang.Throwable: net.minecraft.ReportedException: Feature placement at io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.unrecoverableChunkSystemFailure(ChunkTaskScheduler.java:280) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.NewChunkHolder.lambda$setGenerationTask$4(NewChunkHolder.java:1691) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkProgressionTask.complete0(ChunkProgressionTask.java:95) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkProgressionTask.complete(ChunkProgressionTask.java:75) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:105) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.queue.RadiusAwarePrioritisedExecutor$Task.run(RadiusAwarePrioritisedExecutor.java:468) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:62) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] Caused by: net.minecraft.ReportedException: Feature placement at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:463) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] ... 5 more Caused by: java.lang.NullPointerException: Cannot read field "capturedTileEntities" because the return value of "net.minecraft.server.level.ServerLevel.getCurrentWorldData()" is null at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:565) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:558) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ImposterProtoChunk.getBlockEntity(ImposterProtoChunk.java:85) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.server.level.WorldGenRegion.getBlockEntity(WorldGenRegion.java:253) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity.setLootTable(RandomizableContainerBlockEntity.java:39) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.feature.MonsterRoomFeature.place(MonsterRoomFeature.java:111) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.feature.Feature.place(Feature.java:155) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.feature.ConfiguredFeature.place(ConfiguredFeature.java:25) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.placement.PlacedFeature.lambda$placeWithContext$4(PlacedFeature.java:52) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?] at java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180) ~[?:?] at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) ~[?:?] at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?] at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithContext(PlacedFeature.java:51) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithBiomeCheck(PlacedFeature.java:37) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:445) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] ... 5 more [17:32:54] [Region Scheduler Thread #0/ERROR]: Too many chained neighbor updates. Skipping the rest. First skipped position: -3984, 45, 6289 [17:32:54] [Region Scheduler Thread #0/ERROR]: [io.papermc.paper.threadedregions.TickRegionScheduler] Region #25 centered at chunk [-247, 142] in world 'world' failed to tick: java.lang.RuntimeException: Chunk system crash propagated from unrecoverableChunkSystemFailure at io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.lambda$unrecoverableChunkSystemFailure$1(ChunkTaskScheduler.java:303) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.threadedregions.RegionizedTaskQueue$PrioritisedQueue$ChunkBasedPriorityTask.executeInternal(RegionizedTaskQueue.java:511) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.threadedregions.RegionizedTaskQueue$PrioritisedQueue.executeTask(RegionizedTaskQueue.java:441) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.threadedregions.RegionizedTaskQueue$RegionTaskQueueData.drainTasks(RegionizedTaskQueue.java:271) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1523) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.tickRegion(TickRegions.java:360) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:385) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool$TickThreadRunner.run(SchedulerThreadPool.java:525) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at java.lang.Thread.run(Thread.java:833) ~[?:?] Caused by: net.minecraft.ReportedException: Feature placement at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:463) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.queue.RadiusAwarePrioritisedExecutor$Task.run(RadiusAwarePrioritisedExecutor.java:468) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:62) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] Caused by: java.lang.NullPointerException: Cannot read field "capturedTileEntities" because the return value of "net.minecraft.server.level.ServerLevel.getCurrentWorldData()" is null at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:565) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.LevelChunk.getBlockEntity(LevelChunk.java:558) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ImposterProtoChunk.getBlockEntity(ImposterProtoChunk.java:85) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.server.level.WorldGenRegion.getBlockEntity(WorldGenRegion.java:253) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity.setLootTable(RandomizableContainerBlockEntity.java:39) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.feature.MonsterRoomFeature.place(MonsterRoomFeature.java:111) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.feature.Feature.place(Feature.java:155) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.feature.ConfiguredFeature.place(ConfiguredFeature.java:25) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.placement.PlacedFeature.lambda$placeWithContext$4(PlacedFeature.java:52) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?] at java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180) ~[?:?] at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) ~[?:?] at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?] at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[?:?] at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?] at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithContext(PlacedFeature.java:51) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.levelgen.placement.PlacedFeature.placeWithBiomeCheck(PlacedFeature.java:37) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.addVanillaDecorations(ChunkGenerator.java:445) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:475) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkGenerator.applyBiomeDecoration(ChunkGenerator.java:470) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.lambda$static$12(ChunkStatus.java:173) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at net.minecraft.world.level.chunk.ChunkStatus.generate(ChunkStatus.java:305) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.ChunkUpgradeGenericStatusTask.run(ChunkUpgradeGenericStatusTask.java:86) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at io.papermc.paper.chunk.system.scheduling.queue.RadiusAwarePrioritisedExecutor$Task.run(RadiusAwarePrioritisedExecutor.java:468) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:62) ~[folia-1.19.4.jar:git-Folia-"4c11d7e"] [17:32:54] [Region shutdown thread/INFO]: [RegionShutdownThread] Awaiting scheduler termination for 60s [17:32:54] [Region shutdown thread/INFO]: [RegionShutdownThread] Scheduler halted [17:32:54] [Region shutdown thread/INFO]: Stopping server ``` </details>
Spottedleaf commented 2023-05-14 20:17:46 +02:00 (Migrated from github.com)

Got this on previous built, from 19h ago, might help.
log

I can only see this happening if you have a plugin used the regenerate chunk API. Is this the case?

> Got this on previous built, from 19h ago, might help. > log I can only see this happening if you have a plugin used the regenerate chunk API. Is this the case?
ricsal1 commented 2023-05-14 22:21:47 +02:00 (Migrated from github.com)

I can only see this happening if you have a plugin used the regenerate chunk API. Is this the case?

Hi Leaf, I don't have any plugins generating chunks.
This test ran with minecraft-stress-test connected, simulating players

BTW on current built I got these controlled errores:
"[20:30:48 ERROR]: Detected setBlock in a far chunk [-126, 408], pos: BlockPos{x=-2013, y=31, z=6540}, status: minecraft:features, currently generating: ResourceKey[minecraft:worldgen/placed_feature / minecraft:large_dripstone]"

"[21:14:34 ERROR]: Failed to fetch mob spawner entity at (-3540, 21, -529)"

> I can only see this happening if you have a plugin used the regenerate chunk API. Is this the case? Hi Leaf, I don't have any plugins generating chunks. This test ran with minecraft-stress-test connected, simulating players BTW on current built I got these controlled errores: "[20:30:48 ERROR]: Detected setBlock in a far chunk [-126, 408], pos: BlockPos{x=-2013, y=31, z=6540}, status: minecraft:features, currently generating: ResourceKey[minecraft:worldgen/placed_feature / minecraft:large_dripstone]" "[21:14:34 ERROR]: Failed to fetch mob spawner entity at (-3540, 21, -529)"
Spottedleaf commented 2023-05-15 03:17:00 +02:00 (Migrated from github.com)

I can only see this happening if you have a plugin used the regenerate chunk API. Is this the case?

Hi Leaf, I don't have any plugins generating chunks. This test ran with minecraft-stress-test connected, simulating players

BTW on current built I got these controlled errores: "[20:30:48 ERROR]: Detected setBlock in a far chunk [-126, 408], pos: BlockPos{x=-2013, y=31, z=6540}, status: minecraft:features, currently generating: ResourceKey[minecraft:worldgen/placed_feature / minecraft:large_dripstone]"

"[21:14:34 ERROR]: Failed to fetch mob spawner entity at (-3540, 21, -529)"

I have reviewed the stacktrace again only to find that the line number on ImposterProtoChunk does not match what it should.
It looks like the diff I inserted there to prevent this crash is not on your Folia build, even though the commit # indicates it should be. Can you re-run applyPatches, and make a new build and test again?

> > I can only see this happening if you have a plugin used the regenerate chunk API. Is this the case? > > Hi Leaf, I don't have any plugins generating chunks. This test ran with minecraft-stress-test connected, simulating players > > BTW on current built I got these controlled errores: "[20:30:48 ERROR]: Detected setBlock in a far chunk [-126, 408], pos: BlockPos{x=-2013, y=31, z=6540}, status: minecraft:features, currently generating: ResourceKey[minecraft:worldgen/placed_feature / minecraft:large_dripstone]" > > "[21:14:34 ERROR]: Failed to fetch mob spawner entity at (-3540, 21, -529)" I have reviewed the stacktrace again only to find that the line number on ImposterProtoChunk does not match what it should. It looks like the diff I inserted there to prevent this crash is not on your Folia build, even though the commit # indicates it should be. Can you re-run applyPatches, and make a new build and test again?
Spottedleaf commented 2023-05-15 04:45:53 +02:00 (Migrated from github.com)

This branch seems stable enough for Folia, so I'll merge it now.

This branch seems stable enough for Folia, so I'll merge it now.
ricsal1 commented 2023-05-15 23:37:11 +02:00 (Migrated from github.com)

I have reviewed the stacktrace again only to find that the line number on ImposterProtoChunk does not match what it should. It looks like the diff I inserted there to prevent this crash is not on your Folia build, even though the commit # indicates it should be. Can you re-run applyPatches, and make a new build and test again?

Might have missed a step in the built, anyway the last built from this branch did not produce any problems besides the one I last posted, all controlled.

> I have reviewed the stacktrace again only to find that the line number on ImposterProtoChunk does not match what it should. It looks like the diff I inserted there to prevent this crash is not on your Folia build, even though the commit # indicates it should be. Can you re-run applyPatches, and make a new build and test again? Might have missed a step in the built, anyway the last built from this branch did not produce any problems besides the one I last posted, all controlled.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Minecraft/Folia!74
No description provided.