opencode 修复 MCP 子进程泄漏:轮询客户端可致内存耗尽
sugarless-sweet · ghdev · 2026-09-12
opencode 仓库的 PR #48595 针对 issue #47727 描述的 serve 实例进程泄漏问题:通过 /mcp/:name/connect 交互的轮询客户端会不断 spawn 新的 stdio MCP 子进程,直到内存耗尽且进程永不释放。该 PR 为实例 HttpApi 路由处理器新增回归测试,锁定预期生命周期:
- POST /mcp/demo/connect 只产生一个存活的 stdio MCP 子进程
- 对同一目录重复 status + connect 保持始终只有一个子进程,不累积
- POST /mcp/demo/disconnect 会回收子进程,存活进程归零
测试 fixture 是一个每次 spawn 时追加自己 pid 的标准 MCP stdio 服务器,测试用 process.kill(pid, 0) 统计存活进程数,任何 spawn 后未被 dispose 的进程都会导致断言失败。验证:新测试连续 5 次通过,test/server/ 全量套件 298 通过 / 0 失败。
「编程与Agent」频道最新
- 开发者自研双环消息协议:RL 前先训练格式遵循的智能体数据 — cephaloform · 2026-09-12
- 为 brainfuck 编程 agent 打造字符级迷你 tokenizer 上架 Hugging Face — cephaloform · 2026-09-12
- 开发者从 Claude Code 换到 Codex:终于告别“找到真凶”式瞎折腾 — TheMoonMidas · 2026-09-12
- 评测体系遭质疑:adapter-harness-model 三元组让榜单失真 — teortaxesTex · 2026-09-12
- Git AI 团队二人组加入 OpenAI,开源工具将继续维护 — Dimillian · 2026-09-12
- 让 Instigent 智能体代买东京演唱会门票:AI 助手硬仗实测 — annbordetsky · 2026-09-12