执行摘要
本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.sh 和 scripts/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作为快速响应外部依赖变化的案例,值得在类似调试场景中参考。
参与讨论