Prhub

#27027 Solving the problem of test case failures caused by timeouts

原始 PR 作者 liuxianglong17 合并时间 2026-06-04 20:07 文件变更 1 提交数 2 评论 2 代码增减 +2 / -0

执行摘要

NPU 测试超时修复:watchdog-timeout 从 300 提升到 900

夜间流水线中 test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py 测试用例因权重加载耗时过长导致失败,错误信息表明默认 watchdog-timeout 值为 300 秒不足以覆盖加载时间。PR body 明确说明:"The actual value of watchdog-timeout is 300",并指出加载权重超时是失败根因。

该 PR 属于应急性质的小幅参数调整,不值得精读。但可作为测试基础设施维护的参考:对于超时类失败,适当放宽阈值是快速稳定 CI 的手段之一。建议同时记录权重加载预期时间,并考虑后续优化加载速度以从根本上消除超时风险。

讨论亮点

本 PR 无 review 评论,仅有一条来自 iforgetmyname/tag-run-ci-label 指令用于触发 CI。无技术争议或设计讨论。

实现拆解

  1. 定位问题:识别出 test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py 在 NPU 夜间流水线中因权重加载时间超过默认 watchdog-timeout(300s)而失败。
  2. 参数调整:在测试类的 setUpClass 方法中,向 popen_launch_serverother_args 列表添加 "--watchdog-timeout""900",将 watchdog 超时时间延长至 900 秒。
  3. 无需配套修改:由于仅涉及测试配置参数的调整,无需修改源码、schema 或部署脚本。
文件 模块 状态 重要度
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py NPU 测试 modified 3.25

关键源码片段

test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py test-coverage

唯一被修改的文件;在服务启动参数中添加 `--watchdog-timeout 900` 以延长超时时间,解决权重加载耗时导致的测试失败。

# 文件 : test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py
# 变更:在 setUpClass 的服务启动参数中添加 --watchdog-timeout 900@classmethod
def setUpClass(cls):
    cls.model = DEEPSEEK_V3_2_W8A8_WEIGHTS_PATH
    cls.base_url = DEFAULT_URL_FOR_TEST
    cls.process = popen_launch_server(
        cls.model,
        cls.base_url,
        timeout=6000, # 整体测试超时保持 6000 秒
        other_args=[
            "--trust-remote-code",
            "--tp-size", "16",
            "--quantization", "modelslim",
            "--moe-a2a-backend", "deepep",
            "--deepep-mode", "low_latency",
            "--mem-fraction-static", 0.82,
            "--disable-cuda-graph",
            "--disable-radix-cache",
            "--context-length", 40960,
            "--max-prefill-tokens", 128,
            "--max-total-tokens", 40960,
            "--watchdog-timeout", 900, # 新增:将 watchdog 超时从默认 300 秒提高到 900 秒,避免权重加载耗时过长导致进程被误杀
        ],
        env={
            "PYTORCH_NPU_ALLOC_CONF": "expandable_segments:True",
            "STREAMS_PER_DEVICE": "32",
            "SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK": "128",
            "HCCL_BUFFSIZE": "2048",
            "HCCL_OP_EXPANSION_MODE": "AIV",
            "TASK_QUEUE_ENABLE": "0",
            **os.environ,
        },
    )

评论区精华

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

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

风险与影响

风险极低。变更仅修改测试用例内的超时参数,不影响任何生产逻辑或模块接口。可能的风险是:如果权重加载时间长期超过 900s,测试仍可能失败,但可进一步调大超时或优化加载流程。另外,过度放宽超时可能掩盖其他潜在的性能退化问题。

影响范围:仅限 NPU 上 test_npu_deepep_low_latency_deepseek_v3_2_w8a8.py 一个测试用例。影响程度:低,仅提升测试稳定性,对用户和系统无影响。团队影响:减少 NPU 夜间流水线误报,节省排查时间。

低风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论