Merge pull request #2335 from pikasTech/docs/372-agentrun-zombie-acceptance
docs: 收口 AgentRun zombie 修复验收
This commit is contained in:
@@ -160,6 +160,6 @@
|
||||
|
||||
依据 [UniDesk #2275](https://github.com/pikasTech/unidesk/issues/2275) 泛化改进 AipodSpec 装配漂移调查入口:让默认 `agentrun describe aipodspec/<name>` 的人类、JSON、YAML 有界投影同时披露 required skill 名称、总数与省略数,使同类 source-of-truth 对照无需 `--full` 或临时 dump;保持 SecretRef-only、运行面零变更,并以一次定向 smoke 验证,完成任务后将详细报告写入[任务报告](./details/agentrun-runtime-reliability/R11.1_Task_Report.md)。
|
||||
|
||||
## R12 [in_progress]
|
||||
## R12 [completed]
|
||||
|
||||
解决 [AgentRun #372](https://github.com/pikasTech/agentrun/issues/372):修复 release runner 以 Bun 直接作为容器 PID 1、无法回收 Codex/Git 孤儿后代而持续累积 `timeout`/`git` zombie;在 runtime image 使用轻量 init 作为唯一 PID 1 并 exec 现有 boot 链,不改变 task/session、Kafka 实时/回放、持久化、lease、timeout、provider、SecretRef 或 workspace authority;经 release 自动交付后验证新 runner zombie 不再增长,不运行 Vitest、不人工补 CI/CD且不触碰 Webterm,完成任务后将详细报告写入[任务报告](./details/agentrun-runtime-reliability/R12_Task_Report.md)。
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# R12 AgentRun runner 子进程回收任务报告
|
||||
|
||||
## 结论
|
||||
|
||||
已修复 release runner 将 Bun 直接置为容器 PID 1 导致 `timeout`/`git` 子进程无法回收的问题。最终根因不是镜像缺少 init,而是 runner Job 的 Kubernetes `command` 覆盖了镜像 `/sbin/tini --` Entrypoint;修复将启动脚本声明改为 `args`,保留现有 boot、task/session、Kafka、持久化、lease、timeout、provider、SecretRef 和 workspace 语义。
|
||||
|
||||
## 交付
|
||||
|
||||
- AgentRun PR [#373](https://github.com/pikasTech/agentrun/pull/373) 在 runtime image 安装并声明 `tini` Entrypoint。
|
||||
- AgentRun PR [#374](https://github.com/pikasTech/agentrun/pull/374) 移除 Job 对 Entrypoint 的覆盖,合并提交为 `c88661566a9e0379fa4afad1ccb1aab030912c29`。
|
||||
- 正常 release 自动链成功生成镜像 `sha256:712e999f59f6d4a837bb664f2af291b66e5df09f4db33ddcbbb5e35774815d77` 和 GitOps revision `16410d3427b7`;未人工触发 PipelineRun 或 Argo sync。
|
||||
|
||||
## 运行面验收
|
||||
|
||||
- 新 manager 启动日志确认 source commit 为 `c88661566a9e0379fa4afad1ccb1aab030912c29`。
|
||||
- 运行面镜像配置显示 Entrypoint 为 `/sbin/tini --`;manager 实际加载的 `src/runner/k8s-job.ts` 使用 `args`。
|
||||
- 自然业务 run `run_571fd8af447a4f8696a916f8a7e7d42d` 创建新 runner `agentrun-nc01-release-runner-8c657bded67e-555px`:Pod 使用新镜像、`command` 为空、`args` 为现有 runner boot 脚本。
|
||||
- 容器进程树为 `tini` PID 1 → Bun PID 7 → Node PID 154 → Codex PID 161。
|
||||
- 在 backend 初始化、resource bundle 物化和真实 commandExecution 前后两次采样,runner zombie 均为 0。
|
||||
- 发布前旧 runner 未被中断,继续使用旧镜像自然完成;未触碰 Webterm,未运行 Vitest。
|
||||
|
||||
## 关联内存证据
|
||||
|
||||
旧 AgentRun runner 退出后总 zombie 从 226 降至约 69,剩余主要来自仍运行的发布前旧 runner。新 runner 未复现增长。NC01 真实 `MemAvailable` 仍随业务在 2.7 至 3.9 GiB 波动,因此未为验收额外创建合成任务,也未启动 WebProbe。
|
||||
Reference in New Issue
Block a user