Skip to content
This repository was archived by the owner on Sep 12, 2021. It is now read-only.
This repository was archived by the owner on Sep 12, 2021. It is now read-only.

Chunks are reset when the number of open file handles are limited #354

@ShirasawaSama

Description

@ShirasawaSama

Describe the bug
When chunk files can't be opened, the server should be "fatal" (crash) instead of trying to regenerate the chunks.

To Reproduce
Open a large number of network requests or file handles in the java process, or limit a small number of file handles in the java process.

Plugins
WebsocketTester

Version

Unknown version
Previous version: git-Tuinity-23 (MC: 1.17.1)

Misc

[01:16:55] [Paper RegionFile IO Thread/FATAL]: Failed to read chunk data for task: Task for world: 'world' at -1,-2 poi: false, hash: 1981067460
java.nio.file.FileSystemException: ./world/region/r.-1.-1.mca: Too many open files
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:100) ~[?:?]
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[?:?]
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
        at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:182) ~[?:?]
        at java.nio.channels.FileChannel.open(FileChannel.java:292) ~[?:?]
        at java.nio.channels.FileChannel.open(FileChannel.java:345) ~[?:?]
        at net.minecraft.world.level.chunk.storage.RegionFile.<init>(RegionFile.java:449) ~[patched_1.17.1.jar:git-Tuinity-26]
        at net.minecraft.world.level.chunk.storage.RegionFile.<init>(RegionFile.java:422) ~[patched_1.17.1.jar:git-Tuinity-26]
        at net.minecraft.world.level.chunk.storage.RegionFileStorage.getFile(RegionFileStorage.java:103) ~[?:?]
        at net.minecraft.world.level.chunk.storage.RegionFileStorage.read(RegionFileStorage.java:187) ~[?:?]
        at net.minecraft.world.level.chunk.storage.ChunkStorage.read(ChunkStorage.java:116) ~[?:?]
        at net.minecraft.server.level.ChunkMap.read(ChunkMap.java:1730) ~[patched_1.17.1.jar:git-Tuinity-26]
        at net.minecraft.server.level.ServerLevel$2.readData(ServerLevel.java:256) ~[?:?]
        at com.destroystokyo.paper.io.PaperFileIOThread$ChunkDataTask.run(PaperFileIOThread.java:508) ~[patched_1.17.1.jar:git-Tuinity-26]
        at com.destroystokyo.paper.io.QueueExecutorThread.pollTasks(QueueExecutorThread.java:105) ~[patched_1.17.1.jar:git-Tuinity-26]
        at com.destroystokyo.paper.io.QueueExecutorThread.run(QueueExecutorThread.java:49) ~[patched_1.17.1.jar:git-Tuinity-26]
[01:16:55] [Paper Async Chunk Task Thread #2/ERROR]: Could not load chunk for task: Chunk task: class:com.destroystokyo.paper.io.chunk.ChunkLoadTask, for world 'world', (-1,-2), hashcode:1585271463, priority: -1, file IO thread has dumped the relevant exception above

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions