Prhub

#26775 fix test cases failed on 5/30 in nightly pipeline

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

执行摘要

修复 NPU 夜间测试失败问题

在 5 月 29 日夜间构建中,之前跳过的测试用例重新执行,但在 5 月 30 日触发的夜间流水线中,有 5 个测试用例由于自身实现问题执行失败。

该 PR 为常规维护性修复,无需精读。但可关注 test_ascend_utils.py 中权重路径和环境变量的管理方式,作为测试基础设施维护的参考。

讨论亮点

只有 gemini-code-assist 机器人自动评论总结变更内容,无人工审查讨论。

实现拆解

  1. 修正 import 路径:在 test_npu_no_overlap_scheduler.py 中将 run_mmlu_test 的导入路径从 sglang.test.ascend.test_ascend_utils 改为 sglang.test.test_utils,并调整为从同一模块导入多个符号。
  2. 更新模型权重路径:在 test_ascend_utils.py 中将 KIMI_VL_A3B_INSTRUCT_WEIGHTS_PATH 的模型权重目录从 Kimi/Kimi-VL-A3B-Instruct 更新为 moonshotai/Kimi-VL-A3B-Instruct
  3. 添加环境变量:在 test_npu_deepep_auto_qwen3_next.pytest_npu_deepep_low_latency_qwen3_next.py 的环境变量字典中添加 GDN_ATTN_BACKEND_TRITON=1,以适配产品代码更新。
  4. 补充测试框架参数:在 test_ascend_utils.pyget_benchmark_args 函数调用中添加 ready_check_timeout_sec=0 参数,解决测试框架未适应代码更新导致失败的问题。
文件 模块 状态 重要度
test/registered/ascend/basic_function/parameter/test_npu_no_overlap_scheduler.py 调度测试 modified 4.13
python/sglang/test/ascend/test_ascend_utils.py 测试工具 modified 3.92
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_auto_qwen3_next.py DeepEP 测试 modified 3.28
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_low_latency_qwen3_next.py DeepEP 测试 modified 3.28

关键源码片段

test/registered/ascend/basic_function/parameter/test_npu_no_overlap_scheduler.py test-coverage

修正了错误的 import 路径,将 run_mmlu_test 从 sglang.test.ascend.test_ascend_utils 改为 sglang.test.test_utils

# test_npu_no_overlap_scheduler.py ( 变更后 )
import unittestfrom sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase, run_mmlu_test # 统一从 test_utils 导入register_npu_ci(
    est_time=400,
    suite="nightly-1-npu-a3",
    nightly=True,
)class TestOverlapSchedule(CustomTestCase):
    # ... 测试方法保持不变
python/sglang/test/ascend/test_ascend_utils.py test-coverage

更新了 Kimi-VL 模型权重路径并添加了 ready_check_timeout_sec 参数

# test_ascend_utils.py ( 变更后片段 )
# 模型权重路径常量
KIMI_VL_A3B_INSTRUCT_WEIGHTS_PATH = os.path.join(
    MODEL_WEIGHTS_DIR, "moonshotai/Kimi-VL-A3B-Instruct" # 从 Kimi 改为 moonshotai
)# 在 get_benchmark_args 函数中调用 benchmark_serving 时补充参数
def get_benchmark_args(...):
    # ... 其他参数
    return benchmark_serving(
        # ...
        max_concurrency=max_concurrency,
        ready_check_timeout_sec=0, # 新增参数,解决测试框架未适配问题
    )
test/registered/ascend/basic_function/parallel_strategy/expert_parallelism/test_npu_deepep_auto_qwen3_next.py test-coverage

添加环境变量 GDN_ATTN_BACKEND_TRITON=1 以适配产品代码更新

# test_npu_deepep_auto_qwen3_next.py ( 变更后环境变量部分 )
env={
    "SGLANG_DEEPEP_BF16_DISPATCH": "1",
    "PYTORCH_NPU_ALLOC_CONF": "expandable_segments:True",
    "STREAMS_PER_DEVICE": "32",
    "HCCL_OP_EXPANSION_MODE": "AIV",
    "HCCL_ALGO": "level0:NA;level1:ring",
    "SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK": "20",
    "HCCL_BUFFSIZE": "2000",
    "GDN_ATTN_BACKEND_TRITON": "1", # 新增环境变量
    **os.environ,
},

评论区精华

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

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

风险与影响

所有修改仅涉及测试文件(.py 测试用例和测试工具类),不影响生产代码或模型推理逻辑。风险极低,但修改后的测试仅在 NPU 环境中有效,需确保权重路径和环境变量在对应环境中准确可用。

直接影响 Ascend NPU 夜间测试流水线,修复 5 个失败的测试用例。对用户和系统无影响。

低风险 仅测试变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论