Merged
fix(platform): preserve cross-node recovery identity and retries #176
fix(platform): preserve cross-node recovery identity and retries #176
Merged
fuyipengAdd on 1 day ago
fuyipeng
fuyipengCollaborators
1 day ago

Paired: GitHub #226 ↔ GitCode !176

/kind bug

Pod 替换触发跨节点恢复时,调度器为 checkpoint 存储和源节点排除追加的条件会留在临时 spec 中,与 Redis 的权威 Environment spec 不一致。托管卷执行授权因此校验冲突,无卷路径也会留下不一致的调度状态。

恢复 Assignment 持久化后,将调度请求和放置快照恢复为权威 spec,保持 Assignment、generation、设备与资源预留;其他规格或归属变化仍被拒绝。

恢复按失败阶段决定重试:本地容量不足、后端 restore 前的临时执行准入失败可重试;checkpoint 读取、后端 restore/初始化/readiness/路由失败,在确认清理后进入 Failed。明确的控制 RPC Unauthenticated、PermissionDenied 复用已有 BackendFailure 错误码,保留原因并停止准入重试;Internal 保留诊断信息,继续按原阶段策略处理。不新增错误类型。清理不确定时保留必要占用,Running 结果发布失败仍只补交结果。

授权已落库但回复失败时,保留本次 runtime id;确认清理后的 Paused 提交携带 stopped_runtime_ids,Coordinator 释放独占 Occupancy,下一次授权使用该 runtime 作为 previous。

新增回归收敛为 8 个:Coordinator 规格与预留不变量 2 个,自动/按需跨节点卷恢复及授权后错误处理 3 个,adxlet 可重试/不可重试边界的表驱动测试 2 个,协议错误映射 1 个。合并共享 fixture,移除重复的阶段测试;HTTP 超时语义复用现有错误码矩阵断言。同步恢复和错误契约文档。

验证

基于 upstream/master(6a4c6d87)验证:

  • 237 个不同测试通过(包含既有用例):Protocol 33、adxlet pause/resume 81、Coordinator 恢复单元测试 2、RPC 集成 65、按需启动/恢复 24、调度 17、现有 HTTP 错误契约 15。
  • 4 个 shared-checkpoint 恢复场景额外通过默认 2 MiB 测试线程栈复验。
  • cargo fmt --all -- --check 通过。
  • cargo clippy --workspace --all-targets --all-features --locked --offline -j2 -- -D warnings 通过。
  • python3 build/docs/check.py、git diff --check 通过。

本地集成使用真实 Redis 和 mTLS,RuntimeDriver、readiness 与共享对象存储为测试夹具。授权错误注入发生在真实 RPC 完成 Redis 授权后的回复边界。不代表真实 sandboxd、共享文件系统或 Kubernetes 滚动升级验收。TLS/连接失败若没有明确的认证拒绝状态,仍按依赖不可用处理;本补丁不会自动复活历史 Failed 记录。

likedislike
Pull Request has been successfully merged by luowenyu.
(Thank you for fuyipeng's contribution.)
atomgit-bot
atomgit-bot
1 day ago Comments:

🤖 AI Code Review

⚠️ 审查未能完成

本次代码审查未能完成,可能是临时性故障。

你可以在评论区输入 /ai summary 重新发起审查。若多次失败,请联系管理员并附上下方追踪 ID。

追踪 ID: task-457060

likedislike
Incorrect?
atomgit-bot
atomgit-bot
1 day ago Comments:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
Incorrect?
atomgit-bot
atomgit-bot
1 day ago Comments:

🤖 AI Code Review

⚠️ 审查未能完成

本次代码审查未能完成,可能是临时性故障。

你可以在评论区输入 /ai review 重新发起审查。若多次失败,请联系管理员并附上下方追踪 ID。

追踪 ID: task-457061

likedislike
Incorrect?
OopenJiuwen-botCollaborators
1 day ago Set luozhancheng,robbluo,lzkfyr_hxh as approver
OopenJiuwen-botCollaborators
1 day ago Added label: sig/sig-agent-dx
47 messages are collapsed here。 See more
luowenyu
luowenyuCollaborators
1 day ago Comments:

/lgtm
/approve

likedislike
OopenJiuwen-botCollaborators
1 day ago Added label: approvedlgtm-robbluo
openJiuwen-botCollaborators
1 day ago Comments:

Review Code Feedback

  • The label lgtm-robbluo, approved was added to this pull request. It means that robbluo reviewed the code changes. 👋
Tips
  • If this pull request is not merged while all conditions are met, comment /check-pr to try again. 😄
likedislike
luowenyuluowenyuCollaborators
1 day ago Merged pull request, merge node SHA: 58826bf9154107970cf9cd1ae0fb1bd991156114
OopenJiuwen-botCollaborators
1 day ago Removed label: ci-successful