已合并
feat: detect NPU task queue poisoning and restart worker for remaining cases #40439
feat: detect NPU task queue poisoning and restart worker for remaining cases #40439
已合并
kerer-sk创建于 7月8日
kerer-sk
kerer-sk成员
7月8日

变更说明

NPU 测试分片执行中,worker 进程触发致命算子错误后设备上下文被毒化,后续用例全部静默失败污染测试报告。本 PR 增加两层毒化检测 + worker 干净退出 + 父进程重启机制,确保毒化后剩余用例由新 worker 正确执行。

变更内容

  • .github/scripts/run_npu_test_shard.py:
    • 新增「NPU 任务队列毒化 & 硬件错误检测」模块:NPU_QUEUE_FATAL_EXIT_CODE=70、致命错误签名列表、_check_fatal_npu_error()(Layer 1 签名匹配)、_check_npu_poisoned()(Layer 2 探针计算)
    • _execute_worker_batch:提取 message 变量复用;新增 returncode==70 分支,父进程识别后重启新 worker 处理所有未上报用例
    • _worker_main:用例失败后两层检测,命中则 os._exit(70) 干净退出触发重启

关联 Issue

Fixes https://gitcode.com/Ascend/pytorch/issues/2651

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 kerer-sk 的贡献)
kerer-skkerer-sk成员
7月8日 创建了 pull request,commit e5d7e75d
kerer-skkerer-sk成员
7月8日 关联了issue:fix: NPU 测试 worker 进程毒化后无法恢复,导致同 worker 后续用例全部静默失败
atomgit-bot
atomgit-bot
7月8日 评论:

变更摘要

此 PR 针对 NPU 测试分片执行场景,新增了两层毒化检测与 worker 重启机制:当 worker 进程因致命算子错误导致 NPU 设备上下文被毒化后,通过签名匹配(Layer 1)和探针计算(Layer 2)快速识别毒化状态,随后 worker 以特殊退出码 70 干净退出,父进程则自动重启新 worker 继续执行剩余用例,避免后续用例静默失败污染测试报告。

主要改动

  • 新增毒化检测模块:在 .github/scripts/run_npu_test_shard.py 中定义了 NPU_QUEUE_FATAL_EXIT_CODE=70 常量、NPU_QUEUE_FATAL_SIGNATURES 致命错误签名列表,以及 _check_fatal_npu_error()(Layer 1 签名匹配)和 _check_npu_poisoned()(Layer 2 探针计算)两个检测函数,覆盖算子错误、硬件故障和 CANN 运行时错误等多种毒化场景。
  • Worker 端两层毒化检测与干净退出:在 _worker_main 中,每个用例执行失败或出错后依次调用 Layer 1 签名匹配和 Layer 2 探针检测,命中则通过 os._exit(70) 在用例间隙干净退出,避免当前用例被标记为执行中。
  • 父进程识别并重启新 Worker:在 _execute_worker_batch 中新增 returncode == NPU_QUEUE_FATAL_EXIT_CODE 分支,父进程识别后重启新 worker 处理所有未上报的剩余用例,不丢弃任何一个未执行用例。
  • 提取 message 变量复用:在 _execute_worker_batch 中将 case_result.get("message", "") 提取为局部变量 message,用于结果构建和日志输出,减少重复取值。
likedislike
atomgit-bot
atomgit-bot
7月8日 评论:

代码审查

发现 1 个问题,均为中低优先级建议。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
此处折叠了61条消息 查看更多
梁松伟
梁松伟成员
7月15日 评论:

/approve

likedislike
ascend-robotascend-robot成员
7月15日 添加了label:approvedlgtm
ascend-robotascend-robot成员
7月15日 关闭了关联的issue
ascend-robotascend-robot成员
7月15日 合入了pull request
ascend-robot
ascend-robot成员
7月15日 评论:
流水线 pytorch_gitcode_PR_multiVersion#12538 [ commitID:96a8a4e6 ] 已完成
likedislike