Prhub

#29311 [MLX] Fix FutureMap relay unit test to use RelayPayload

原始 PR 作者 LijuanTang94 合并时间 2026-06-26 07:53 文件变更 1 提交数 1 评论 1 代码增减 +4 / -1

执行摘要

修复 MLX 单元测试使用过时的 stash() API

PR 的 Motivation 中指出,test_mlx_scheduler_init_overlap_keeps_future_map_relaymain 分支上因 FutureMap.stash() 已重构为接受 RelayPayload 数据类,但测试仍传入原始 torch.Tensor,导致 AttributeError: 'Tensor' object has no attribute 'draft_probs'。该问题由 @changminbark 报告,本次作为单独 PR 修复。

该 PR 是典型的 API 重构后未同步测试的反例,值得注意:当核心函数签名变更时,应系统地检查所有调用点(包括测试)。建议精读以了解 RelayPayload 的用法。

讨论亮点

无 reviewer 评论或其他讨论。PR 已获 @yeahdongcn 批准。

实现拆解

  1. 在文件 test/registered/unit/hardware_backend/mlx/test_attention_patching.py 中,新增导入 from sglang.srt.managers.overlap_utils import RelayPayload
  2. 将第 420 行 scheduler.future_map.stash(indices, torch.tensor([7], dtype=torch.int64)) 改为 scheduler.future_map.stash(indices, RelayPayload(bonus_tokens=torch.tensor([7], dtype=torch.int64))),确保传入的第二个参数是 RelayPayload 实例,以匹配 stash() 当前的预期签名。
  3. 断言语句未改动,仍验证 output_tokens_buf[1].item() 等于 7。
  4. 该变更为纯测试修复,不涉及生产逻辑。
文件 模块 状态 重要度
test/registered/unit/hardware_backend/mlx/test_attention_patching.py MLX 后端 modified 4.06

关键源码片段

test/registered/unit/hardware_backend/mlx/test_attention_patching.py test-coverage

唯一的变更文件,修复了单元测试中对 `FutureMap.stash()` 的调用,使其适配新的 `RelayPayload` 数据类 API。

# test/registered/unit/hardware_backend/mlx/test_attention_patching.py
# 修复:FutureMap.stash() 现在需要 RelayPayload 类型,而非原始 Tensorfrom sglang.srt.managers.overlap_utils import RelayPayload # 新增导入# ...(省略已存在的 setup 代码)self.assertIsNotNone(scheduler.future_map)
indices = torch.tensor([1], dtype=torch.int64)
scheduler.future_map.stash(
    indices,
    RelayPayload(bonus_tokens=torch.tensor([7], dtype=torch.int64)) # 修正:包装为 RelayPayload
)
self.assertEqual(int(scheduler.future_map.output_tokens_buf[1].item()), 7)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低:变更仅涉及单行测试代码和导入语句,不影响生产逻辑。唯一风险是如果 RelayPayload 构造函数签名在未来变化,该测试可能再次失效,但属于正常维护范畴。

影响范围仅限于 MLX 硬件后端的一个单元测试。修复后该测试可正常通过,避免 CI 失败阻塞其他变更。对其他用户或系统无影响。

测试修复

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论