Prhub

#22103 Fix killall_sglang missing the main sglang serve process

原始 PR 作者 hnyls2002 合并时间 2026-04-04 18:43 文件变更 1 提交数 1 评论 2 代码增减 +1 / -1

执行摘要

修复 CI 清理脚本无法杀死主服务器进程的问题,确保端口释放。

根据PR body描述,killall_sglang脚本使用正则模式匹配/proc/PID/cmdline来查找并杀死SGLang进程。然而,主服务器进程(通过sglang serve启动)的命令行格式为/usr/local/bin/python3 /usr/local/bin/sglang serve --model-path ...,而现有模式仅覆盖子进程(如sglang::*sglang.launch_server等),导致主进程被遗漏,从而无法释放其占用的HTTP端口。

该PR变更简单直接,适合快速了解CI清理机制。值得关注review中提到的脚本一致性和CLI子命令覆盖问题,可作为后续改进参考。

讨论亮点

reviewer gemini-code-assist[bot]指出:

  1. 修改使Python脚本与shell脚本scripts/killall_sglang.sh不一致,建议同步更新以确保本地清理工作正常;
  2. 当前正则可能遗漏其他CLI子命令如sglang bench(带空格形式),而现有模式sglang.bench仅匹配python -m调用方式。

实现拆解

修改python/sglang/cli/killall.py文件中的正则表达式_SGLANG_PROCESS_PATTERNS,在原有模式基础上添加|sglang serve,使脚本能匹配主服务器进程的命令行。

文件 模块 状态 重要度
python/sglang/cli/killall.py cli modified 5.0

关键符号

_SGLANG_PROCESS_PATTERNS

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

评论区精华

正则表达式一致性与完整性 正确性

reviewer 指出 Python 脚本与 shell 脚本不一致,且可能遗漏其他 CLI 子命令。

结论:未在本次 PR 中解决,建议后续更新。 · 待处理

风险与影响

风险较低:

  1. 修改仅增加一个正则模式,不会影响现有匹配逻辑;
  2. 若未同步更新shell脚本,可能导致本地环境清理不彻底,但CI环境可能不受影响;
  3. 遗漏其他CLI子命令可能导致类似问题,但本次修复聚焦主服务器进程。

对CI流程:确保测试后主服务器进程被杀死,避免端口占用导致后续测试失败。对开发者:本地运行脚本时若未更新shell脚本,可能残留进程。影响范围限于进程清理功能,不涉及核心推理或服务逻辑。

脚本不一致风险 子命令覆盖不全

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论