# PR #3160 完整报告

- 仓库：`radixark/miles`
- 标题：[CI] disable the two FT determinism tests #3148 missed
- 合并时间：2026-09-10 01:57
- 原文链接：http://prhub.com.cn/radixark/miles/pull/3160

---

# 执行摘要

- 一句话：禁用两个遗漏的容错确定性测试，完善 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 的绿色。

# 实现拆解

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`（模块 容错确定性测试；类别 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 进行修复，而非继续扩大禁用名单。

# 风险与影响

- 风险：
 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。
 - 风险标记：核心检查点失效 , 测试覆盖度骤降 , 技术债务累积

# 关联脉络

- 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`）的临时修复。