Prhub

#21423 [AMD] Fix AMD CI: mark /sglang-checkout as git safe.directory in container

sgl-project/sglang · 作者 michaelzhang-ai · 合并时间 2026-03-26 10:18

分析状态 已生成
文件变更 2提交数 4 · 评论 1
代码增减 +10 / -0
bugfix ci

执行摘要

修复 AMD CI 因 git 所有权检查失败导致的依赖安装错误。

根据PR body,setuptools-scm新版本(v9+,现为vcs_versioning)在处理git版本内省时将所有权错误视为致命,而CI容器以root用户运行,代码检出属于runner用户,导致git拒绝访问,从而使AMD CI所有工作流(如Nightly Test和PR Test)从2024年3月25日开始失败。

对于关注CI调试、git所有权问题或AMD平台支持的工程师,此PR值得快速浏览,以学习如何解决类似跨用户git访问问题;变更简单,无需深入代码分析。

讨论亮点

review中没有实质性讨论,只有两位reviewer(bingxche和yctseng0211)批准,表明变更直接且被接受,无争议或设计权衡。

实现拆解

修改了两个AMD CI启动脚本:在'scripts/ci/amd/amd_ci_start_container.sh'和'scripts/ci/amd/amd_ci_start_container_disagg.sh'中,于容器启动命令后添加一行'docker exec ci_sglang git config --global --add safe.directory /sglang-checkout',将/sglang-checkout目录标记为git安全目录以允许跨用户访问。

文件 模块 状态 重要度
scripts/ci/amd/amd_ci_start_container.sh CI Infrastructure modified 5.0
scripts/ci/amd/amd_ci_start_container_disagg.sh CI Infrastructure modified 5.0

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

评论区精华

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

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

风险与影响

风险较低:更改仅限于git全局配置,不影响业务逻辑;但需注意此配置可能在其他git操作中产生副作用,例如在多容器环境或不同用户场景下。由于仅针对特定目录,且已验证通过CI测试,回归风险小。

修复了所有AMD CI工作流(包括nightly-test-amd.yml、nightly-test-amd-rocm720.yml等),使依赖安装阶段恢复正常;对用户和系统其他部分无影响,仅涉及CI基础设施,提升团队开发效率。

配置更改影响范围有限 依赖外部工具行为

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR修复了AMD CI工作流中因git所有权检查失败导致的依赖安装错误,通过添加git安全目录配置确保容器内root用户可访问代码目录,恢复所有AMD CI正常运行。

功能与动机

由于setuptools-scm更新至v9+后,将git的“dubious ownership”错误视为致命,而CI容器以root用户运行,代码检出属于非root的runner用户,导致git拒绝访问,从而使所有AMD CI工作流(如Nightly Test和PR Test)从2024年3月25日开始在“Install dependencies”阶段失败。此PR旨在快速修复此回归问题,避免影响团队开发和测试流程。

实现拆解

关键改动在两个AMD CI启动脚本中:

  • scripts/ci/amd/amd_ci_start_container.shscripts/ci/amd/amd_ci_start_container_disagg.sh 均在容器启动命令后添加一行:
    bash docker exec ci_sglang git config --global --add safe.directory /sglang-checkout
    该命令将/sglang-checkout目录标记为git安全目录,允许跨用户访问,解决setuptools-scm版本内省时的所有权错误。

评论区精华

review中没有实质性讨论,只有两位reviewer(bingxche和yctseng0211)批准,表明变更直接且被团队接受,无设计争议或技术辩论。

风险与影响

  • 风险:更改仅涉及git全局配置,风险较低;但需注意在复杂多容器环境中可能干扰其他git操作,不过已验证通过CI测试,回归风险小。
  • 影响:修复了所有AMD CI工作流,使依赖安装阶段恢复正常,对用户和系统其他部分无直接影响,仅提升CI基础设施的稳定性和团队开发效率。

关联脉络

从近期历史PR看,此PR是团队持续优化CI基础设施的一部分:

  • PR #21338 修复CI资源泄漏,强调环境问题处理。
  • PR #21345 改进CI性能,减少速率限制消耗。
  • PR #21428 修复AMD平台启动崩溃,凸显该平台的特殊性。
    这些PR共同反映团队对CI稳定性和跨平台支持的重视,本PR作为快速响应外部依赖变化的案例,值得在类似调试场景中参考。

参与讨论