# PR #36700 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[Misc] Added curl retries in install_python_libraries.sh
- 合并时间：2026-04-24 09:19
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/36700

---

## 执行摘要

本 PR 为 NVSHMEM 下载的 curl 命令增加重试机制（`--retry 3 --retry-delay 2`），以应对 DNS 解析失败等瞬态网络问题，提升 CI 脚本可靠性。仅一行变更，风险极低。

## 功能与动机

CI 流程中下载 NVSHMEM 库时偶现 DNS 解析失败（curl exit code 6），导致构建中断。PR body 中给出了错误示例：

```
curl: (6) Could not resolve host: developer.download.nvidia.com
```

通过增加重试参数，可使命令自动重试瞬态网络错误，无需手动重新触发 CI。

## 实现拆解

1. **定位变更文件**：`tools/ep_kernels/install_python_libraries.sh` 第 104 行的 NVSHMEM 下载命令。
2. **修改参数**：将 `curl -fSL "${NVSHMEM_URL}"` 改为 `curl -fSL --retry 3 --retry-delay 2 "${NVSHMEM_URL}"`。
3. **讨论调整**：首次提交还包含了 `--retry-all-errors`，但 review 建议移除以避免掩盖 404 等永久错误，最终版本仅保留默认瞬态错误重试。

配套变更：无（仅有脚本参数调整）。

## 评论区精华

> 使用 `--retry-all-errors` 会掩盖持久问题，例如 URL 变更后返回 404，curl 仍会多次尝试。建议仅重试瞬态错误（默认行为已覆盖超时、DNS 失败、5xx 服务器错误）。
> —— gemini-code-assist[bot]

作者确认并移除了 `--retry-all-errors`，只保留 `--retry 3 --retry-delay 2`。

## 风险与影响

- **风险**：极低。若网络永久不可达，重试会将失败延迟 6 秒，但不会造成其他危害。
- **影响**：仅 CI 构建流程中的 NVSHMEM 下载步骤，无用户可见影响。预期降低 CI 因网络瞬态故障而失败的频率。

## 关联脉络

本 PR 是独立的可靠性改进，与同仓库近期其他 PR（如 `#40730` 移除 asyncio 基础设施）不同，不涉及 MoE、Spec Decode 等核心模块。类似模式可推广到其他 curl 下载命令。