Paper: [Crash] when the server try to read a chunk data

Created on 24 Mar 2020  路  12Comments  路  Source: PaperMC/Paper

Hi, since few days now, we are facing some troubles. It seems that it happends when we try to go in another world just after load/unload a world

Link/paste of stack trace

https://pastebin.com/GvMTeaLm

Plugin list:

DungeonsXL 0.18-SNAPSHOT-819
Multiverse 4.1.0

Actions to reproduce (if known):

Create a dungeon (Which will create a map)
Leave this dungeon
Try to change world

Paper build number:

git-Paper-120 (MC: 1.15.2)

Any idea ? Thanks

Most helpful comment

I am not very experienced with programming on server software level, but I am currently 80% sure that at least one possible cause of this is calling Bukkit.unloadWorld(world, true) and deleting the world folder in the same tick. I imagine at least parts of unloading the world are done asynchronously, and that these async tasks aren't finished when the folder is deleted.

The reason why I was doing it is that Bukkit.unloadWorld(world, false) used to be severely broken until 1.14.4.

All 12 comments

Similar to what I mentioned here: https://github.com/PaperMC/Paper/issues/2991#issuecomment-592996516

Somehow paper sometimes closes the files when it should not...

Another clue :
It happends for every player who has the fakejoin. When they do the /va to became visible again, the server crash.

Please reproduce with latest version

I'm on the #143 version and i reproduce this already

this still occure in #146 :s

[16:34:12] [Paper RegionFile IO Thread/FATAL]: Failed to read chunk data for task: Task for world: 'DXL_Game_0' at 1,-8 poi: false, hash: 178714162
java.nio.channels.ClosedChannelException: null
    at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:150) ~[?:?]
    at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:790) ~[?:?]
    at net.minecraft.server.v1_15_R1.RegionFile.a(RegionFile.java:142) ~[paperspigot.jar:git-Paper-146]
    at net.minecraft.server.v1_15_R1.RegionFileCache.read(RegionFileCache.java:141) ~[paperspigot.jar:git-Paper-146]
    at net.minecraft.server.v1_15_R1.PlayerChunkMap.read(PlayerChunkMap.java:1129) ~[paperspigot.jar:git-Paper-146]
    at net.minecraft.server.v1_15_R1.WorldServer$2.readData(WorldServer.java:138) ~[paperspigot.jar:git-Paper-146]
    at com.destroystokyo.paper.io.PaperFileIOThread$ChunkDataTask.run(PaperFileIOThread.java:557) ~[paperspigot.jar:git-Paper-146]
    at com.destroystokyo.paper.io.QueueExecutorThread.pollTasks(QueueExecutorThread.java:105) ~[paperspigot.jar:git-Paper-146]
    at com.destroystokyo.paper.io.QueueExecutorThread.run(QueueExecutorThread.java:38) ~[paperspigot.jar:git-Paper-146]
[16:34:12] [Paper Async Chunk Task Thread #0/ERROR]: Could not load chunk for task: Chunk task: class:com.destroystokyo.paper.io.ch

Any news ?

still occure with #161 build of paper.

I am not very experienced with programming on server software level, but I am currently 80% sure that at least one possible cause of this is calling Bukkit.unloadWorld(world, true) and deleting the world folder in the same tick. I imagine at least parts of unloading the world are done asynchronously, and that these async tasks aren't finished when the folder is deleted.

The reason why I was doing it is that Bukkit.unloadWorld(world, false) used to be severely broken until 1.14.4.

Still occure in paper#227
Failed to read chunk data for task: Task for world: 'DXL_Game_0' at 5,8 poi: true, hash: 687973975

https://github.com/DRE2N/DungeonsXL/blob/master/core/src/main/java/de/erethon/dungeonsxl/world/DGameWorld.java#L461

This is source of the issue. DungeonsXL needs to fix this to not go blindly deleting the folder so fast.

though based on @Sataniel98's comment, may be resolved now in updated DXL

I think @PierreBouchet's comment is an unrelated problem. It has nothing to do with Paper.

Was this page helpful?
0 / 5 - 0 ratings