CobbleSword / NachoSpigot

NachoSpigot is a fork of TacoSpigot 1.8.9 that offers several enhancements to performance as well as bug fixes.
GNU General Public License v3.0
237 stars 86 forks source link

Prevent server crash from Chunk exceptions #331

Closed caoli5288 closed 2 years ago

caoli5288 commented 2 years ago

Describe the feature

The server will crash while any exception occurred in chunk load or save.

[19:58:18] [Server thread/ERROR]:   Cause of unexpected exception was
java.io.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:245) ~[?:?]
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:159) ~[?:?]
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:252) ~[?:?]
    at java.io.BufferedInputStream.read(BufferedInputStream.java:271) ~[?:?]
    at java.io.DataInputStream.readByte(DataInputStream.java:270) ~[?:?]
    at net.minecraft.server.v1_8_R3.NBTTagCompound.a(NBTTagCompound.java:306) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTTagCompound.load(NBTTagCompound.java:46) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTTagList.load(NBTTagList.java:56) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTTagCompound.a(NBTTagCompound.java:317) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTTagCompound.load(NBTTagCompound.java:49) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTTagCompound.a(NBTTagCompound.java:317) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTTagCompound.load(NBTTagCompound.java:49) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:84) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:53) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.NBTCompressedStreamTools.a(NBTCompressedStreamTools.java:43) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at net.minecraft.server.v1_8_R3.ChunkRegionLoader.loadChunk(ChunkRegionLoader.java:73) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at org.bukkit.craftbukkit.v1_8_R3.chunkio.ChunkIOProvider.callStage1(ChunkIOProvider.java:25) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at org.bukkit.craftbukkit.v1_8_R3.chunkio.ChunkIOProvider.callStage1(ChunkIOProvider.java:18) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at org.bukkit.craftbukkit.v1_8_R3.util.AsynchronousExecutor$Task.init(AsynchronousExecutor.java:150) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at org.bukkit.craftbukkit.v1_8_R3.util.AsynchronousExecutor$Task.initAsync(AsynchronousExecutor.java:95) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at org.bukkit.craftbukkit.v1_8_R3.util.AsynchronousExecutor$Task.run(AsynchronousExecutor.java:85) ~[paperspigot-1.8.8-R0.1-SNAPSHOT.jar:git-NachoSpigot-"c901193"]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) [?:?]
[19:58:18] [Server thread/ERROR]: This crash report has been saved to: /home/hyt/gameserver/game/xianjing/xj-s1/./crash-reports/crash-2022-01-17_19.58.18-server.txt

Technical implementation

No response

Other

No response

Agreements

ghost commented 2 years ago

Is that world even using zlib format?

ghost commented 2 years ago

@Lucaskyy close?