Files
pikasTech-unidesk/docs/MDTODO/details/agentrun-runtime-reliability/R4.1_Task_Report.md
T
Codex 3b9dc4c3ef
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / platform-infra-gitea-nc01- Success
Pipelines as Code CI / unidesk-host- Success
docs: 跟踪 runner 假活修复与验收
2026-07-12 05:30:34 +02:00

2.4 KiB
Raw Blame History

R4.1 阶段报告

状态

  • 任务仍在进行中,来源为 AgentRun #309
  • manager 根因修复已通过 PR #311 合并到 v0.2merge commit 为 b7a15b77e0040f2c602f09629835f2a438132d61
  • UniDesk 只读分类对齐由 UniDesk #1820 和 R4.1.1 接续;完成前不关闭 R4.1。

根因与修复

  • 终态 run/cancel 事务未释放 claimed_bylease_expires_at 和 PostgreSQL lease。
  • retention 将终态 Pod 的 terminated container 错当成当前 active。
  • 修复让终态事务原子释放 claim/lease,并以 DB fence 与 Kubernetes CAS 修复历史漂移;fresh claim、Running/Ready Pod 和事实不完整继续 fail closed。

临时缓解

  • 历史容量一度为 20/20;受控观察恢复到 4/20 后,两个未配置 dsflash-goFailedMount 探针通过正式 agentrun cancel run/... 终态化,未裸删 Job/Pod。
  • 缓解期间容量保持 available,最低观测到 3/20availableSlots=17;临时缓解不等于根因修复。

自动交付

  • PR merge 自动产生唯一外层 PaC 事件,PipelineRun 成功,source 为 b7a15b7
  • 新镜像已构建,Argo Synced/Healthyruntime 1/1 且 digest 对齐。
  • 未人工触发、sync、flush、创建 PipelineRun 或 patch 运行面。

NC01 验收

  • 正式 task qt_385e04018ef04783a74d0ee86fbb8819 经 Queue create/dispatch 完成,result 为 RUNNER_RETENTION_ACCEPTANCE_OK
  • 新 manager 的 runner-job-created 事件将两个历史对象分类为 terminal-run-stale-claim,并给出 repairKind=release-terminal-run-claimfresh active runner 继续 protected。
  • Artificer command 完成时保留 warm runner fresh claim;随后正式 cancel 使 run 进入 cancelledclaimedBy=nullleaseExpiresAt=null,验证终态事务立即释放 claim。

验证与剩余项

  • 子代理已通过 runner retention/terminal lifecycle 定向合同 40 项、durable dispatch 10 项、变更模块 build 和 git diff --check
  • 隔离 PostgreSQL URL 未声明,因此未反解运行面 Secret,也未执行真实 PostgreSQL 集成入口。
  • UniDesk cleanup-runners observer 仍沿用旧分类,未把 manager 已确认的两个终态 claim 显示为 candidate;由 #1820 修复并完成默认 compact CLI 验收。