Skip to content

Watchdog判定超时卡死并触发线程转储 #1023

@17695432859

Description

@17695432859

Description

关键调用栈(反复出现):
sun.nio.ch.FileDispatcherImpl.pwrite0(Native Method)
→ FileChannelImpl.write(...)
→ sable@1.2.2 SubLevelStorageFile.write / writeHeader / close
→ SubLevelHoldingChunkMap.saveAll(...)
→ ServerLevel.save(...)
→ MinecraftServer.saveEverything(...)
→ MinecraftServer.tickServer(...)
解释:
服务器主线程(Server Thread)在自动保存周期(saveEverything → saveAllChunks)时
调用了 Sable 模组的 SubLevel(子维度/子层级)存储系统
Sable v1.2.2 在主线程同步向自定义 Region 文件写 NBT(压缩后 pwrite)
底层 FileChannel.pwrite()阻塞超过 60 秒(Windows 磁盘 I/O 慢 / 文件过大 / 防病毒扫描 / HDD 随机读写瓶颈)
Watchdog 发现主线程 >60s 未推进 tick → 打印"server has not responded" → 最终判定卡死
日志里明确说了:
The server has stopped responding! ... world save or edit, then it means you did far more than your server can handle at once

Game Log

https://mclo.gs/sLnmvXC

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions