# PR #7264 完整报告

- 仓库：`PaddlePaddle/FastDeploy`
- 标题：[XPU][CI] lock xvllm version for fix bug
- 合并时间：2026-04-09 12:44
- 原文链接：http://prhub.com.cn/PaddlePaddle/FastDeploy/pull/7264

---

# 执行摘要

- 一句话：锁定 XPU 算子依赖版本并移除硬编码 RDMA 网卡配置，提升 CI 稳定性。
- 推荐动作：该 PR 变更简单但涉及 CI 基础设施，建议关注环境变量恢复逻辑的完整性。对于维护 XPU CI 的工程师，值得查看 tests/xpu_ci/conftest.py 中 restore_env() 的实现，确保 BKCL_RDMA_NICS 能正确恢复。锁定版本的做法值得借鉴，但需确保有相应的版本管理和回滚机制。

# 功能与动机

根据 review 评论，锁定 xvllm 版本是为了修复特定 bug（具体 bug 现象未在 PR 描述中说明），而移除硬编码的 BKCL_RDMA_NICS 环境变量是为了改用动态获取方式以适配不同测试环境，避免配置冲突。PR 描述本身未填写 Motivation 和 Modifications，但 review 中建议补充锁定版本的具体原因和验证方式。

# 实现拆解

修改涉及两个文件：1) custom_ops/xpu_ops/download_dependencies.sh：将 develop 分支的 xvllm 版本从 'latest' 改为 '20260407'；2) tests/xpu_ci/conftest.py：从 setup_ep_env() 函数的 env_vars 字典中删除硬编码的 'BKCL_RDMA_NICS': 'eth1,eth1,eth2,eth2' 项，依赖后续动态设置。

关键文件：
- `custom_ops/xpu_ops/download_dependencies.sh`（模块 XPU 算子依赖管理）: 锁定 xvllm 依赖版本，影响 XPU 算子构建的可复现性
- `tests/xpu_ci/conftest.py`（模块 XPU CI 测试配置）: 移除硬编码 RDMA 网卡配置，影响 XPU CI 测试环境设置

关键符号：setup_ep_env()


# 评论区精华

review 中主要关注两个问题：1) Copilot 指出移除 BKCL_RDMA_NICS 硬编码后，original_values 不再保存该变量旧值，可能导致 restore_env() 时无法正确恢复环境变量，造成用例间串扰；2) Copilot 建议在 PR 描述中补充锁定版本的具体 bug 现象、选择 20260407 的原因以及验证方式。这些讨论揭示了变更可能引入的环境变量管理风险和文档缺失问题。

- 环境变量恢复逻辑完整性 (correctness): 未在讨论中明确解决，存在潜在风险
- PR 描述文档完整性 (documentation): PR 描述未更新，文档缺失

# 风险与影响

- 风险：主要风险包括：1) 环境变量恢复逻辑不完整风险：tests/xpu_ci/conftest.py 中移除 BKCL_RDMA_NICS 硬编码后，未在 original_values 中记录原值，restore_env() 可能无法正确恢复该变量，导致测试用例间环境污染；2) 版本锁定风险：将 xvllm 从 'latest' 固定为 '20260407'，如果该版本存在未发现的问题或后续需要更新，可能影响 CI 通过率；3) 文档缺失风险：PR 描述未说明锁定版本的具体 bug 和验证方式，不利于后续维护和问题排查。
- 影响：影响范围有限但重要：1) 对用户无直接影响，主要影响 CI 流水线和开发者测试环境；2) 提升 XPU CI 的可复现性和稳定性，避免因依赖版本浮动导致的构建失败；3) 增强测试环境适配性，移除硬编码网卡配置使测试能在更多 RDMA 环境下运行；4) 需要关注环境变量恢复逻辑是否完整，避免引入新的测试稳定性问题。
- 风险标记：环境变量管理风险 , 文档缺失

# 关联脉络

- PR #7244 [XPU][CI]Remove duplicate NICs from environment variables: 同样修改 tests/xpu_ci/conftest.py，移除重复的 NIC 配置，与本 PR 的 RDMA 配置清理相关