从后端元数据恢复 Runner claim #31

Merged
panxiao81 merged 3 commits from fix/recover-facade-claims into main 2026-09-21 06:48:12 +00:00
Owner

问题

controller rollout 时,已运行 executor 的 facade claim 原本只存在于内存;runner 重试终态上报会被新进程拒绝。task 986 在 VM canary rollout 时复现了该窗口。

修复

  • 从 Pod/OpenSandbox metadata 重建最小 assignment
  • 严格校验 task ID、backend、repository/job key 与 SPIFFE ID
  • controller 启动时把现有非终态 executor 恢复为已 claim
  • 不新增数据库或消息队列用途

验证

  • go test ./...
  • go vet ./...
  • 新增 metadata assignment 与 claimed registry 恢复测试

发布该修复后,task 986 的官方 runner 可继续其原终态重试。

## 问题 controller rollout 时,已运行 executor 的 facade claim 原本只存在于内存;runner 重试终态上报会被新进程拒绝。task 986 在 VM canary rollout 时复现了该窗口。 ## 修复 - 从 Pod/OpenSandbox metadata 重建最小 assignment - 严格校验 task ID、backend、repository/job key 与 SPIFFE ID - controller 启动时把现有非终态 executor 恢复为已 claim - 不新增数据库或消息队列用途 ## 验证 - `go test ./...` - `go vet ./...` - 新增 metadata assignment 与 claimed registry 恢复测试 发布该修复后,task 986 的官方 runner 可继续其原终态重试。
panxiao81 added 1 commit 2026-09-21 06:18:24 +00:00
fix: 从后端恢复 Runner claim
test / python (pull_request) Successful in 9s
test / shell (pull_request) Successful in 15s
test / go (pull_request) Successful in 2m18s
5e94182308
panxiao81 added 1 commit 2026-09-21 06:35:10 +00:00
feat: 通过 Lease 单例调度任务
test / python (pull_request) Successful in 31s
test / shell (pull_request) Successful in 34s
test / go (pull_request) Successful in 3m38s
2a23f0c62e
panxiao81 added 1 commit 2026-09-21 06:44:39 +00:00
fix: 隔离 Pod 与 VM 并发容量
test / python (pull_request) Successful in 20s
test / shell (pull_request) Successful in 23s
test / go (pull_request) Successful in 3m46s
d06845bc3c
panxiao81 merged commit 8a186dcd86 into main 2026-09-21 06:48:12 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/gitea-dynamic-runner#31