Skip to content

区域分割时空指针异常:RegionizedWorldData.split() 中 player 为 null 导致服务器崩溃 #168

@Apliuyao

Description

@Apliuyao

服务端版本 LuminolMC Version

1.21.11正式最新构建

预期的行为 Expected behavior

不触发重启

观测到的实际行为 Observed/Actual behavior

等待区域调度器执行分割操作时触发崩溃

复现步骤 Steps/models to reproduce

等待区域调度器执行分割操作时触发崩溃
(与玩家断开连接时机相关,难以稳定复现)

插件与数据包列表。 Plugin and Datapack List.

无插件问题

更多详细信息。 The more information.

[16:41:09] [Folia Region Scheduler Thread #0/ERROR]: [io.papermc.paper.threadedregions.ThreadedRegionizer] Failed to release region
java.lang.NullPointerException: Cannot invoke "net.minecraft.server.level.ServerPlayer.chunkPosition()" because "player" is null
at io.papermc.paper.threadedregions.RegionizedWorldData$1.split(RegionizedWorldData.java:235)
at io.papermc.paper.threadedregions.RegionizedWorldData$1.split(RegionizedWorldData.java:75)
at io.papermc.paper.threadedregions.TickRegions$TickRegionData.split(TickRegions.java:347)
at io.papermc.paper.threadedregions.ThreadedRegionizer$ThreadedRegion.split(ThreadedRegionizer.java:831)
at io.papermc.paper.threadedregions.ThreadedRegionizer.onRegionRelease(ThreadedRegionizer.java:662)
at io.papermc.paper.threadedregions.ThreadedRegionizer$ThreadedRegion.markNotTicking(ThreadedRegionizer.java:987)
at io.papermc.paper.threadedregions.TickRegions$ConcreteRegionTickHandle.markNotTicking(TickRegions.java:469)
at io.papermc.paper.threadedregions.TickRegionScheduler$RegionScheduleHandle.runTick(TickRegionScheduler.java:529)
at ca.spottedleaf.concurrentutil.scheduler.EDFSchedulerThreadPool$TickThreadRunner.run(EDFSchedulerThreadPool.java:526)
at java.base/java.lang.Thread.run(Thread.java:1583)

问题分析:RegionizedWorldData.java:235 的 split() 方法中调用 player.chunkPosition() 时 player 为 null
可能原因:玩家断开后对象已清理,但仍残留在区域玩家列表中
建议修复:在 split() 中添加 null 检查

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