PaperMC / PaperMC/Paper

Certain chunks not updating

Open
#10,858 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: accepted type: bug version: 1.20.6
Dominant language
Java
Stars
12.7k
Forks
3.5k
Avg merge
3d 13h
Merged PRs (30d)
11

Description

Expected behavior

Chunk to update from 1.20.4 to 1.20.6 without issue

Observed/Actual behavior

The chunk was reset to default world generation, another chunk lost all its entities.

Steps/models to reproduce

2024-06-08_08 59 13
2024-06-08_08 58 14
2024-06-08_08 58 57
2024-06-08_08 58 34
2024-06-08_08 57 23
2024-06-08_08 58 05
These are comparisons between the world in 1.20.4 and 1.20.6. I simply had the world in a 1.20.4 server then swapped the server jar from the 1.20.4 paper jar to 1.20.6 paper jar and when exploring discovered these chunks had been reset and in the one entities removed.

Plugin and Datapack List

Plugins: FreedomChat, Luckperms, spark
Datapacks: Vanilla, Bukkit, lwvoting, lwmeteorite, Timer, lwcommands, lwbiomes, paper, lwloot, beacons
Their are two different plugins lists as we tried this on two separate paper servers, datapacks remained the same however and issues remained the same
Plugins on 2nd server: Fast ASync Voxel Sniper, Fast ASync World Edit, freedomchat

Paper version

This server is running Paper version 1.20.6-137-master@bd5867a (2024-06-04T21:04:28Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)\nYou are running the latest version\nPrevious version: 1.20.6-115-9d6f2cc (MC: 1.20.6)

Other

This is a custom map. If you load the world in singleplayer or outside of paper the chunks stay their unless the world has already been loaded by paper.
These stack traces appeared when this occured(I have the stack traces for 2 of the chunks but I haven't found the stack trace for chunk #3 yet)

java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.dataconverter.types.ListType.size()" because "armor" is null
	at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:47) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:17) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:24) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:97) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V704.lambda$register$2(V704.java:386) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:133) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convert(WalkerUtils.java:20) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$11(V99.java:339) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V705.lambda$register$1(V705.java:184) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:145) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$8(V99.java:309) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:13) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convert(MCDataConverter.java:56) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(MCDataConverter.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at net.minecraft.world.level.chunk.storage.EntityStorage.upgradeChunkTag(EntityStorage.java:136) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$EntityDataLoadTask.runOffMain(ChunkLoadTask.java:470) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at io.papermc.paper.chunk.system.scheduling.GenericDataLoadTask$ProcessOffMainTask.run(GenericDataLoadTask.java:307) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:50) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
[03:53:39] [Tuinity Chunk System Worker #0/ERROR]: [NewChunkHolder] Unhandled entity data load exception, data data will be lost: 
java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.dataconverter.types.ListType.size()" because "armor" is null
	at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:47) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:17) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:24) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:97) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V704.lambda$register$2(V704.java:386) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:133) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convert(WalkerUtils.java:20) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$11(V99.java:339) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V705.lambda$register$1(V705.java:184) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:145) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V99.lambda$register$8(V99.java:309) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:13) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convert(MCDataConverter.java:56) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(MCDataConverter.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at net.minecraft.world.level.chunk.storage.EntityStorage.upgradeChunkTag(EntityStorage.java:136) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$EntityDataLoadTask.runOffMain(ChunkLoadTask.java:470) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at io.papermc.paper.chunk.system.scheduling.GenericDataLoadTask$ProcessOffMainTask.run(GenericDataLoadTask.java:307) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:50) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
[03:53:39] [Tuinity Chunk System Worker #0/ERROR]: [ChunkLoadTask] Failed to parse chunk data for task: GenericDataLoadTask{class: io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$ChunkDataLoadTask, world: world, chunk: (7,-32), hashcode: 813850109, priority: COMPLETING, type: CHUNK_DATA}, chunk data will be lost
net.minecraft.ReportedException: Updated chunk
	at net.minecraft.world.level.chunk.storage.ChunkStorage.upgradeChunkTag(ChunkStorage.java:141) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at io.papermc.paper.chunk.system.scheduling.ChunkLoadTask$ChunkDataLoadTask.runOffMain(ChunkLoadTask.java:333) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at io.papermc.paper.chunk.system.scheduling.GenericDataLoadTask$ProcessOffMainTask.run(GenericDataLoadTask.java:307) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue$PrioritisedTask.executeInternal(PrioritisedThreadedTaskQueue.java:351) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadedTaskQueue.executeTask(PrioritisedThreadedTaskQueue.java:118) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedThreadPool$PrioritisedThread.pollTasks(PrioritisedThreadPool.java:274) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorThread.run(PrioritisedQueueExecutorThread.java:50) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
Caused by: java.lang.NullPointerException: Cannot invoke "ca.spottedleaf.dataconverter.types.ListType.size()" because "armor" is null
	at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:47) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V3808$1BodyArmorConverter.convert(V3808.java:17) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType$1.convert(IDDataType.java:24) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:97) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V704.lambda$register$2(V704.java:386) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:133) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:15) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.DataWalkerListPaths.walk(DataWalkerListPaths.java:29) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.DataWalkerListPaths.walk(DataWalkerListPaths.java:8) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.IDDataType.convert(IDDataType.java:145) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils.convertList(WalkerUtils.java:35) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.versions.V2843.lambda$register$0(V2843.java:72) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:111) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType.convert(MCDataType.java:13) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convert(MCDataConverter.java:56) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(MCDataConverter.java:30) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	at net.minecraft.world.level.chunk.storage.ChunkStorage.upgradeChunkTag(ChunkStorage.java:123) ~[paper-1.20.6.jar:1.20.6-115-9d6f2cc]
	... 6 more```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with V3808.java's BodyArmorConverter and trace the failure through EntityStorage.java, ChunkStorage.java, and ChunkLoadTask.java using the supplied stack traces. Reproduce the 1.20.4-to-1.20.6 upgrade with the affected chunks and verify that chunk data and entities are preserved without conversion or parsing errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.