Skip to content

PWT导致数据包执行Minecraft函数时并行线程阻塞 #535

Description

@www228766

自我检查表

  • 我已经浏览过 Issues 和 Leaf 文档, 并确保汇报的不是已知问题
  • 我勾选了所有框, 因为我根本就没仔细看他们是什么
  • 我正在使用从 https://www.leafmc.one/zh/download 下载的最新 Leaf 构建
  • 我无法在 最新 PaperPurpur 构建上复现此问题

问题描述

1.我安装了Incendium_1.21.5_v5.4.9_UNSUPPORTED数据包,并删除了部分内容以改善性能,因为效果未达到预期,于是开启 pwt,进入服务器后出现报错(就像下面那个数据包报错issue一样)
2.使用 AI修改部分数据包(添加了"execute in minecraft:overworld run"前缀),问题似乎得到解决
3.但在部分情况下,出现严重崩溃

所期望的行为

null

如何复现?

经多次反复测试,大致摸清了触发方式:
在结构边搭建地狱传送门,反复进入即可触发,问题触发时,客户端处于世界加载界面或虚空,后台服务器卡死

通义灵码的解释:
根据错误日志,当前问题是Leaf服务端启用并行世界处理后出现的线程阻塞问题。从堆栈跟踪来看,
问题出现在以下调用链中:
ServerFunctionManager.execute
-> FunctionCallback.handle
-> TimerQueue.tick
-> ServerLevel.tick
-> ServerLevel.tickTime
-> StructureManager.getStructureWithPieceAt
-> LocationPredicate.matches
这表明在执行Minecraft函数时,系统尝试检查实体是否在特定结构内(如要塞、城堡等),
这需要同步加载区块,导致并行线程阻塞。

Spark profiler 链接

因为服务器卡死导致无法保存spark :(

错误日志 (如存在)

https://mclo.gs/YFrba92

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions