Prhub

#39555 [ROCm][CI/Build] Fix memory cleanup in MM test

vllm-project/vllm · 作者 AndreasKaratzas · 合并时间 2026-04-12 11:13

分析状态 已生成
文件变更 1提交数 2 · 评论 6
代码增减 +6 / -3
rocm ci v1

执行摘要

修复 ROCm CI 中多模态内存泄漏测试的配置问题,确保测试稳定运行。

PR body中提及这是PR #39411的后续修复(Parity PR),旨在解决多模态测试中的内存清理问题。review评论指出,原配置中test_memory_leak.py被错误忽略,且新添加的测试命令缺少必要的观察性标志和环境变量,可能导致ROCm平台上的测试不稳定或死锁。

该PR属于常规CI配置修复,无需深入阅读代码。值得关注的是ROCm平台上多模态测试的特殊要求(需要spawn多进程方法),这对跨平台测试配置有参考价值。

讨论亮点

review中gemini-code-assist[bot]指出三个关键问题:1. 新增的test_memory_leak.py测试命令缺少标准观察性标志-v和-s;2. 未按照ROCm特定要求设置VLLM_WORKER_MULTIPROC_METHOD=spawn环境变量,可能导致多模态测试死锁;3. --ignore列表中存在格式错误(双空格)。这些评论促使提交者在后续提交中修复了这些问题。

实现拆解

仅修改了.buildkite/test-amd.yaml文件,在三个测试步骤中进行了相同调整:1. 在原有pytest命令的--ignore列表中新增test_memory_leak.py,将其从忽略列表中移除;2. 新增独立的pytest命令专门运行test_memory_leak.py,但初始实现缺少-v、-s标志和VLLM_WORKER_MULTIPROC_METHOD=spawn环境变量。

文件 模块 状态 重要度
.buildkite/test-amd.yaml CI/Infrastructure modified 3.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

测试命令配置完整性 正确性

gemini-code-assist[bot] 指出新增的 pytest 命令缺少 -v、-s 标志和 VLLM_WORKER_MULTIPROC_METHOD=spawn 环境变量,这可能导致测试输出不详细、不稳定或死锁。

结论:提交者在后续提交中修复了这些问题,确保测试命令符合 ROCm 平台要求。 · 已解决

格式错误修复 style

review 中发现 --ignore 列表中存在双空格格式问题,属于次要但需要修正的细节。

结论:在修复过程中一并修正了格式问题。 · 已解决

风险与影响

风险较低,主要涉及CI配置变更:1. 若修复不完整(如未正确添加环境变量),可能导致ROCm上的多模态测试不稳定或死锁;2. 变更仅影响AMD CI流水线,对生产代码无直接影响;3. 文件修改范围小(仅CI配置),回归风险可控。

影响范围有限:1. 仅影响ROCm平台的CI测试执行,确保多模态内存泄漏测试能够正确运行;2. 提升测试覆盖率和稳定性,有助于及早发现内存相关问题;3. 对最终用户和系统功能无直接影响,属于基础设施维护。

配置变更风险 平台特定要求

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR修复了ROCm CI配置中多模态内存泄漏测试的执行问题,通过将test_memory_leak.py从忽略列表移出并作为独立命令运行,确保测试能够正确执行。这是对PR #39411的后续修复,主要影响AMD平台的CI测试稳定性,对生产代码无直接影响。

功能与动机

此变更旨在解决多模态测试中的内存清理问题。PR body中明确说明这是PR #39411的后续修复(Parity PR),review评论进一步指出原配置中test_memory_leak.py被错误忽略,且新增的测试命令缺少必要配置,可能导致ROCm平台测试不稳定。

实现拆解

仅修改了.buildkite/test-amd.yaml文件,在三个测试步骤中进行了相同调整:

  1. 在原有pytest命令的--ignore列表中新增test_memory_leak.py
  2. 新增独立命令运行该测试文件

关键变更示例(以第一个步骤为例):

- pytest -v -s models/multimodal -m core_model \
  --ignore models/multimodal/generation/test_common.py \
  ... \
  --ignore models/multimodal/generation/test_memory_leak.py \
  --ignore models/multimodal/processing
- pytest -v -s models/multimodal/generation/test_memory_leak.py -m core_model

评论区精华

review中gemini-code-assist[bot]指出了三个关键问题:

"The new pytest command for test_memory_leak.py is missing the -v and -s flags... multi-modal tests should use VLLM_WORKER_MULTIPROC_METHOD=spawn to ensure stability and avoid deadlocks."

这揭示了ROCm平台上多模态测试的特殊要求:必须使用spawn多进程方法避免死锁。提交者在后续提交中修复了这些问题。

风险与影响

风险

  • 若未正确添加VLLM_WORKER_MULTIPROC_METHOD=spawn环境变量,可能导致ROCm测试死锁
  • 配置变更可能影响其他测试步骤,但变更范围小,风险可控

影响

  • 仅影响ROCm CI测试执行,提升多模态测试覆盖率和稳定性
  • 对用户功能和系统性能无直接影响
  • 有助于及早发现内存泄漏问题

关联脉络

这是PR #39411的后续修复,两者共同解决多模态测试的内存清理问题。从近期历史PR看,仓库持续关注多模态测试的稳定性(如PR #39344、#39526修复多模态模型问题),本PR是这一趋势在CI层面的体现。ROCm平台的测试配置特殊要求(spawn方法)在其他多模态相关PR中也有体现,形成了跨平台测试的一致模式。

参与讨论