快速结论:该问题发生在客户端进程被强制终止后,vLLM 流式请求未及时中断并继续占用显存/算力。优先排查 FastAPI/Starlette 的 is_disconnected 检测是否失效,并考虑对该函数进行 monkey-patch 修复。
适用环境:vLLM;Ubuntu 22.04;Python 3.11.10;PyTorch 2.5.1+cu124;CUDA 12.4/12.6;NVIDIA RTX 3090;FastAPI 相关版本未在 Issue 中明确,需自行确认。
最快修复方案:暂无确认的一步修复方案;Issue 中建议优先尝试对 FastAPI 的 is_connected/is_disconnected 进行 monkey-patch(参考 #10087 中的解决方案),但未给出验证过的补丁代码。
注意事项:monkey-patch 属于临时规避手段,可能影响其他依赖 FastAPI 请求状态判断的功能;最理想的修复应在 Starlette 上游完成,当前仅适用于等待官方修复前的过渡。
问题场景
用户通过 vLLM 启动 OpenAI 兼容的流式推理服务(如 /v1/completions 或 /v1/chat/completions),在客户端发起了流式请求(stream=True)。当客户端进程在流式输出尚未结束时被强制 kill(非正常断开 TCP),服务端日志出现如下错误,并且请求未被取消,GPU 资源继续被占用。
报错原文
[Bug]: Failed to abort requests when killing client process.
原因分析
根据 Issue 讨论,vLLM 依赖 FastAPI 的 Request.is_disconnected 来周期性检测客户端连接是否中断。但在上述场景中,is_disconnected 在 1.5 秒的轮询间隔内始终未返回 True,导致 iterate_with_cancellation 无法触发取消逻辑。可能原因包括:
- FastAPI/Starlette 在特定操作系统或网络环境下无法正确感知 TCP 连接被强制 kill,导致
is_disconnected失效。 - 客户端进程被 kill 时未正常发送 FIN/RST 包,服务器端无法感知连接关闭。
- Starlette 上游存在
is_connected判断逻辑缺陷,该问题在 #10087 中已被报告过。
环境排查
- 确认 Python 版本(Issue 中为 3.11.10)、PyTorch 版本(2.5.1)、CUDA 版本(12.4/12.6)。
- 确认显卡型号及驱动版本(Issue 中为 RTX 3090 + 560.35.03)。
- 重点确认 FastAPI 及 Starlette 的具体版本,该问题是否为 Starlette 的
is_connected判定缺陷。 - 检查 vLLM 版本,确认是否已包含 #10087 相关修复或已知的 monkey-patch。
解决步骤
- 复现问题并确认日志:在客户端 kill 后,观察 vLLM 服务端日志是否出现
Failed to abort requests错误。 - 定位版本:确认当前 FastAPI 和 Starlette 版本,并对比 #10087 的讨论,判断是否属于同一底层问题。
- 可优先尝试 monkey-patch:在启动 vLLM 服务前,对 FastAPI/Starlette 的
is_connected函数进行补丁,替代原有的连接检测逻辑(具体补丁代码请参考 #10087 的讨论或后续 PR)。 - 如果 monkey-patch 修复有效,可将其封装为启动脚本的一部分;如果不适合生产环境,可等待 Starlette 上游发布修复版本。
- 若问题依旧,尝试升级或降级 Starlette/FastAPI 版本,验证是否为版本兼容性问题。
验证方法
在应用 monkey-patch 后,重新执行“客户端发起流式请求后 kill 进程”的复现步骤,观察 vLLM 日志中不再出现 Failed to abort requests,且通过 nvidia-smi 确认显存占用在请求中断后已被释放,即表示问题已解决。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug]: [SpecDecode] Hybrid Mamba (align) corrupts under speculative decoding when a KV connector is attached — even with zero retrieved toke](https://www.chat-gpts.plus/wp-content/uploads/2026/09/53505-3ea51de1-768x403.jpg)
