执行摘要
- 一句话:禁用两个遗漏的容错确定性测试,完善 CI 临时修复。
- 推荐动作:本 PR 本身是一个简单且机械的测试配置变更,无需精读其代码。然而,PR body 中提出的问题和风险极具价值。强烈建议团队(尤其是负责容错模块的工程师)精读 PR body,因为它清晰地指出了一个潜在的、正在被测试禁用所掩盖的严重 bug(
CellReconfigureEvent sequence mismatch)。这个 PR 的价值不在于代码变更,而在于它触发了对系统设计完整性和测试策略的必要审视。
功能与动机
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 的绿色。
实现拆解
- 变更入口:修改两个端到端测试文件的 CI 注册配置,这两个文件是测试套件的入口点。
- 核心逻辑:在
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" 参数。这是一个纯配置变更,不涉及任何测试逻辑或被测系统源码的修改。
- 配套影响:此变更属于 CI 维护范畴,目的是保持 nightly 构建的稳定性。但如 PR body 所述,此操作导致所有四个
deterministic_* 容错测试变体均被禁用,使得原本用于验证 CellReconfigureEvent 事件序列正确性的检查现在处于无执行状态。
关键文件:
tests/e2e/ft/test_trainer_ft_deterministic_dp2_cp2_real_rollout.py(模块 容错确定性测试;类别 test;类型 test-coverage): 这是被禁用的容错确定性测试之一的入口文件,其变更直接体现了 PR 的核心操作——通过 CI 配置临时跳过测试。
tests/e2e/ft/test_trainer_ft_deterministic_dp4_cp2.py(模块 容错确定性测试;类别 test;类型 test-coverage): 另一个被禁用的容错确定性测试的入口文件,变更内容与上述文件完全一致,共同完成了对所有 deterministic_* 测试变体的禁用。
关键符号:register_cuda_ci
评论区精华
当前 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 稳定性而临时禁用测试,可能掩盖了需要修复的真实缺陷。
- 临时禁用测试以修复 CI 与潜在真实 Bug 的权衡 (testing): 本次操作完成了对已知失败测试的临时禁用,但引发了更深层次的技术债务:一个关键的检查点(
CellReconfigureEvent)已无任何测试覆盖。作者建议应将错误视为真实 bug 进行修复,而非继续扩大禁用名单。
风险与影响
- 风险:
- 正确性风险(高):最大的风险是掩盖了真实的 bug。PR body 明确指出
CellReconfigureEvent sequence mismatch 是一个持续出现的断言错误,且所有相关测试变体(deterministic_*)均已禁用。这意味着一个关键的状态序列检查(CellReconfigureEvent)已无任何测试覆盖,可能导致潜在的问题在生产环境中才被发现。
- 可维护性风险(中):采取‘扩大禁用名单’而非‘修复根因’的策略,可能导致技术债务累积。未来排查相关故障时,会因为缺少测试信号而增加难度。
- 测试覆盖风险(中):根据 PR body 中的表格,十四项 FT 测试中已有十项被禁用,仅剩
no_failure_* 系列在运行。这大幅降低了容错功能的测试覆盖广度,特别是对‘确定性’和‘故障注入’场景的验证。
- 影响:
- 用户影响:直接影响 CI 系统的稳定性和反馈。短期看,恢复了 nightly CI 的绿色状态,减少了对开发团队的噪音干扰。长期看,如果被掩盖的 bug 真实存在,可能会影响依赖容错功能的用户的训练任务稳定性。
- 系统影响:对系统运行时无直接影响,因为变更仅限于测试配置。但对 CI 系统的测试覆盖矩阵产生了显著影响,特别是对容错子系统的验证能力。
- 团队影响:为团队提供了一个临时的“止血”方案,避免了 nightly 构建失败对开发流程的干扰。但同时,它也向团队提出了一个明确的技术决策点:是继续禁用测试,还是投入资源修复
CellReconfigureEvent sequence mismatch 这个潜在的 bug。
- 风险标记:核心检查点失效, 测试覆盖度骤降, 技术债务累积
关联脉络
- PR #3148 [CI] temporarily disable failing FT tests: 本 PR (#3160) 是 #3148 的直接后续。#3148 禁用了 2026-09-08 nightly 中失败的一批 FT 测试,但遗漏了两个变体。本 PR 补全了对这两个遗漏变体(
test_trainer_ft_deterministic_dp2_cp2_real_rollout 和 test_trainer_ft_deterministic_dp4_cp2)的禁用操作,以完成对同一类失败(CellReconfigureEvent sequence mismatch)的临时修复。
参与讨论