Prhub

#3160 [CI] disable the two FT determinism tests #3148 missed

原始 PR 作者 yueming-yuan 合并时间 2026-09-10 01:57 文件变更 2 提交数 1 评论 0 代码增减 +2 / -0

执行摘要

禁用两个遗漏的容错确定性测试,完善 CI 临时修复。

PR body 明确指出,这是对 #3148 的跟进。#3148 在 2026-09-08 禁用了一系列失败的 FT 测试,但遗漏了两个变体:test_trainer_ft_deterministic_dp2_cp2_real_rollout(自 09-07 开始失败,但在 09-08 碰巧通过)和 test_trainer_ft_deterministic_dp4_cp2(09-09 首次失败)。这两个测试与 #3148 中已禁用的测试失败原因相同:AssertionError: CellReconfigureEvent sequence mismatch。当前 PR 的动机是完成对失败测试的临时禁用,以保持 nightly CI 的绿色。

本 PR 本身是一个简单且机械的测试配置变更,无需精读其代码。然而,PR body 中提出的问题和风险极具价值。强烈建议团队(尤其是负责容错模块的工程师)精读 PR body,因为它清晰地指出了一个潜在的、正在被测试禁用所掩盖的严重 bug(CellReconfigureEvent sequence mismatch)。这个 PR 的价值不在于代码变更,而在于它触发了对系统设计完整性和测试策略的必要审视。

讨论亮点

当前 PR 的 review 区只有机器人的初始评论,无实质的技术讨论。核心的技术观点和风险提示完全来自 PR body 本身。作者明确指出:'All four deterministic_* variants are now off, so the event sequence check runs nowhere.' 并建议:'Worth treating CellReconfigureEvent sequence mismatch as a real bug rather than continuing to widen the disable list — the check is now unenforced, not merely flaky.' 这指出了一个重要的设计权衡:为了 CI 稳定性而临时禁用测试,可能掩盖了需要修复的真实缺陷。

实现拆解

  1. 变更入口:修改两个端到端测试文件的 CI 注册配置,这两个文件是测试套件的入口点。
  2. 核心逻辑:在 tests/e2e/ft/test_trainer_ft_deterministic_dp2_cp2_real_rollout.py 和 tests/e2e/ft/test_trainer_ft_deterministic_dp4_cp2.py 中,为 register_cuda_ci 函数调用添加 disabled="will enable in future FT delivery" 参数。这是一个纯配置变更,不涉及任何测试逻辑或被测系统源码的修改。
  3. 配套影响:此变更属于 CI 维护范畴,目的是保持 nightly 构建的稳定性。但如 PR body 所述,此操作导致所有四个 deterministic_* 容错测试变体均被禁用,使得原本用于验证 CellReconfigureEvent 事件序列正确性的检查现在处于无执行状态。
文件 模块 状态 重要度
tests/e2e/ft/test_trainer_ft_deterministic_dp2_cp2_real_rollout.py 容错确定性测试 modified 3.48
tests/e2e/ft/test_trainer_ft_deterministic_dp4_cp2.py 容错确定性测试 modified 3.48

关键符号

register_cuda_ci

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

临时禁用测试以修复 CI 与潜在真实 Bug 的权衡 测试

PR body 详细说明了禁用测试的直接原因(nightly 构建失败,错误为 `CellReconfigureEvent sequence mismatch`)。作者进一步指出,这导致所有四个 `deterministic_*` 变体均被禁用,该事件序列检查已‘unenforced, not merely flaky’,并暗示这可能是一个需要修复的真实 bug,而非测试不稳定。

结论:本次操作完成了对已知失败测试的临时禁用,但引发了更深层次的技术债务:一个关键的检查点(`CellReconfigureEvent`)已无任何测试覆盖。作者建议应将错误视为真实 bug 进行修复,而非继续扩大禁用名单。 · 未解决(由 PR body 提出,待团队决策)

风险与影响

  1. 正确性风险(高):最大的风险是掩盖了真实的 bug。PR body 明确指出 CellReconfigureEvent sequence mismatch 是一个持续出现的断言错误,且所有相关测试变体(deterministic_*)均已禁用。这意味着一个关键的状态序列检查(CellReconfigureEvent)已无任何测试覆盖,可能导致潜在的问题在生产环境中才被发现。
  2. 可维护性风险(中):采取‘扩大禁用名单’而非‘修复根因’的策略,可能导致技术债务累积。未来排查相关故障时,会因为缺少测试信号而增加难度。
  3. 测试覆盖风险(中):根据 PR body 中的表格,十四项 FT 测试中已有十项被禁用,仅剩 no_failure_* 系列在运行。这大幅降低了容错功能的测试覆盖广度,特别是对‘确定性’和‘故障注入’场景的验证。
  1. 用户影响:直接影响 CI 系统的稳定性和反馈。短期看,恢复了 nightly CI 的绿色状态,减少了对开发团队的噪音干扰。长期看,如果被掩盖的 bug 真实存在,可能会影响依赖容错功能的用户的训练任务稳定性。
  2. 系统影响:对系统运行时无直接影响,因为变更仅限于测试配置。但对 CI 系统的测试覆盖矩阵产生了显著影响,特别是对容错子系统的验证能力。
  3. 团队影响:为团队提供了一个临时的“止血”方案,避免了 nightly 构建失败对开发流程的干扰。但同时,它也向团队提出了一个明确的技术决策点:是继续禁用测试,还是投入资源修复 CellReconfigureEvent sequence mismatch 这个潜在的 bug。
核心检查点失效 测试覆盖度骤降 技术债务累积

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论