# PR #7244 完整报告

- 仓库：`PaddlePaddle/FastDeploy`
- 标题：[XPU][CI]Remove duplicate NICs from environment variables
- 合并时间：2026-04-08 19:14
- 原文链接：http://prhub.com.cn/PaddlePaddle/FastDeploy/pull/7244

---

# 执行摘要

- 一句话：移除 XPU CI 测试环境变量中重复的硬编码网卡配置，避免配置冲突。
- 推荐动作：该 PR 变更简单，但揭示了 CI 环境变量管理的一个潜在问题。建议精读 `tests/xpu_ci/conftest.py` 中的 `setup_ep_env()` 和 `restore_env()` 逻辑，关注环境变量保存与恢复机制。对于维护类似测试框架的工程师，这是一个学习环境隔离设计的好案例。

# 功能与动机

根据 Review 评论，原代码在 `setup_ep_env()` 函数的 `env_vars` 字典中硬编码了 `BKCL_RDMA_NICS` 环境变量，值为 "eth1,eth1,eth2,eth2"，存在网卡名重复问题。同时，代码后续已通过 `get_rdma_nics()` 函数动态获取网卡配置，硬编码值会被动态值覆盖，造成重复设置。移除硬编码配置可避免此冲突，使配置更清晰。

# 实现拆解

仅修改了 `tests/xpu_ci/conftest.py` 文件中的 `setup_ep_env()` 函数。从 `env_vars` 字典中删除了 `"BKCL_RDMA_NICS": "eth1,eth1,eth2,eth2"` 这一行。其他环境变量（如 BKCL_ENABLE_XDR、BKCL_TRACE_TOPO 等）保持不变，`BKCL_RDMA_NICS` 现在完全由后续的 `get_rdma_nics()` 函数动态设置。

关键文件：
- `tests/xpu_ci/conftest.py`（模块 XPU CI 测试框架）: 唯一修改的文件，包含 XPU CI 测试的环境设置函数，移除硬编码网卡配置以避免冲突。

关键符号：setup_ep_env


# 评论区精华

Review 中主要有两个讨论点：1. Copilot 指出移除 `BKCL_RDMA_NICS` 从 `env_vars` 后，`original_values`/`restore_env()` 只会保存和恢复 `env_vars` 中的 key，导致 `BKCL_RDMA_NICS` 可能在测试结束后残留，污染后续用例环境。建议在设置前保存旧值并在恢复阶段清理。2. Copilot 建议补充 PR 描述中的 Motivation 和 Modifications 章节，说明为何要去重网卡、期望解决的 CI 问题及影响范围。作者未回复这些评论，PR 已合并。

- 环境变量残留风险 (correctness): 未解决，PR 已合并，风险仍存在。
- PR 描述规范 (documentation): 未补充，PR 描述保持模板内容。

# 风险与影响

- 风险：主要风险是环境变量残留：由于 `BKCL_RDMA_NICS` 不再包含在 `env_vars` 字典中，`original_values` 不会保存其原始值，`restore_env()` 也无法恢复，可能导致该环境变量在测试结束后仍被设置，影响后续测试用例或进程。具体在 `tests/xpu_ci/conftest.py` 的 `setup_ep_env()` 函数中，如果后续逻辑设置了 `BKCL_RDMA_NICS` 但未妥善清理，会造成环境污染。此外，PR 描述缺失动机和修改细节，不利于后续维护。
- 影响：对系统影响：仅影响 XPU CI 测试环境配置，移除重复硬编码值可避免与动态配置冲突，提升配置一致性。对用户影响：无直接影响，这是内部 CI 基础设施调整。对团队影响：简化了测试环境设置，但需注意环境变量清理逻辑，否则可能引入跨测试污染风险。影响范围小，仅限于 XPU CI 测试模块。
- 风险标记：环境变量残留风险 , 缺少测试覆盖

# 关联脉络

- PR #7096 [XPU] Add TP broadcast after sampling in XPU model runner.: 同属 XPU 模块，涉及 XPU 环境或测试的优化。
- PR #7187 [XPU][Docs] Update Release2.5 Note: 同属 XPU 标签，关注 XPU 相关文档或基础设施更新。
- PR #7227 [CI] increase shm-size to 128G in _unit_test_coverage.yml: 同属 CI 标签，涉及 CI 环境配置优化。