Prhub

#50171 [CI][NIXL] Fix flaky DP+EP test port conflict

原始 PR 作者 divakar-amd 合并时间 2026-07-29 08:12 文件变更 1 提交数 1 评论 0 代码增减 +4 / -1

执行摘要

修复 NIXL DP+EP 测试端口冲突

在 DP+EP 模式下,解码实例的端口未显式设置,可能继承固定基端口,与预填充实例的端口范围产生竞争,导致超时。通过设置 VLLM_DP_MASTER_PORT 为 DP 进程组保留独立端口范围,消除竞态条件。

建议合并。这是一个小的测试修复,逻辑清晰,已验证通过。

讨论亮点

无 review 讨论。PR 由维护者 AndreasKaratzas 直接批准。

实现拆解

  1. 修改脚本:在 tests/v1/kv_connector/nixl_integration/run_accuracy_test.sh 中,调整解码实例的端口设置逻辑。
  2. 条件分支:当 DP_EP 变量非空时,设置 VLLM_DP_MASTER_PORT=$INTERNAL_PORT 替代原来的 VLLM_PORT
  3. 注释增强:增加注释说明非 DP 模式使用 VLLM_PORT,DP 模式使用 VLLM_DP_MASTER_PORT 以避免竞争。
文件 模块 状态 重要度
tests/v1/kv_connector/nixl_integration/run_accuracy_test.sh 集成测试 modified 4.23

关键源码片段

tests/v1/kv_connector/nixl_integration/run_accuracy_test.sh test-coverage

核心变更文件,修改了 DP 模式下端口设置逻辑,修复端口冲突导致的测试不稳定。

# 在 run_accuracy_test.sh 中,解码实例端口设置逻辑变更INTERNAL_PORT=$((DECODER_INTERNAL_PORT_BASE + i * INTERNAL_PORT_STRIDE))
# 对于非 DP 模式,设置 VLLM_PORT 以固定内部端口;
# 对于 DP 模式,设置 VLLM_DP_MASTER_PORT 以避免竞态条件。
if [[ -z "${DP_EP:-}" ]]; then
  DECODER_INTERNAL_PORT_ENV="VLLM_PORT=$INTERNAL_PORT"
else
  DECODER_INTERNAL_PORT_ENV="VLLM_DP_MASTER_PORT=$INTERNAL_PORT"
fi

评论区精华

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

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

风险与影响

变更仅影响测试脚本中的一个条件分支,风险极低。如果 VLLM_DP_MASTER_PORT 环境变量未被正确识别,可能导致 DP 模式端口未显式设置,但不会引入新问题。

影响范围仅限于 NIXL 集成测试的 DP+EP 场景,减少测试的 flakiness 和超时重试,提高 CI 稳定性。对其他场景无影响。

低风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论