Skip to content

fix(benchmark): validate install archives before checkpoint activation - #8085

Merged
loopx-agent merged 1 commit into
mainfrom
codex/edgebench-restore-source-preflight-20261105
Nov 5, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/edgebench-restore-source-preflight-20261105

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

Warm checkpoint 恢复会先激活 native capsule、启动剩余 phase 时钟,之后才在 worker 安装阶段发现准备好的 Chat bundle 已过期或损坏,导致模型尚未运行就损失接续时间。现在先复用现有 archive_source 实际归档并验证产品源码与可选 runner overlay,再进行 task/native 准备;worker staging 仍再次检查,普通冷启动保持原路径。

验证:同一组真实临时 Git 仓库/文件系统用例,在基线 92294e7245cb3ad50119c6b817667410a4517c2f 上 3 个拒绝用例失败、3 个对照通过;修复后 6 个全部通过。Linux Python 3.12、Node 24、安装了 SForge/Harbor 的环境运行 source bundle、warm start、checkpoint storage 套件:103 passed,1 skipped(需要单独的 isolated Docker writer-barrier qualification)。Ruff、diff check、RFC bilingual diff check 通过。未运行付费模型或新原生评分;完整 CI 和独立评审待运行。

范围:现有 benchmark adapter 的源码归档 I/O,不新增设置、协议或控制平面 owner。恢复前会多一次临时归档 I/O,保留 staging 重验以覆盖期间变化;这项开销不延长原有预算。复用了现有归档 owner,无需额外抽象。

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent | gpt-6.1-sol | OpenAI | runtime_reported | max

Approval conclusion

Exact head: dbb9164; base/spec revision: 92294e7.

动机 / Motivation

没有发现阻塞本切片的缺陷。执行 warm checkpoint 恢复的 benchmark 操作者,需要在激活保留的 native capsule 前确认接收端实际可安装的源码包。

已固定 Git revision 的 checkout 仍可能带有过期或损坏的忽略目录 Chat bundle;旧 launcher 到 worker 安装才发现,候选先实际归档校验,再进入 task 与 native 准备。

真实 Git/文件系统用例证明,过期 bundle、损坏资产及缺失 runner overlay 在 task materialization 前拒绝;合法 warm 和普通 cold 路径仍能到达原准备边界。

本切片不证明 live capsule、完整容器安装、模型续跑、评分结果或整轮性能收益,也不改变原 phase 时钟、预算和恢复权限。

预检后的并发文件变化继续由既有 staging 重验处理;完整 native/Docker 恢复资格仍沿现有独立验证边界推进。

改动思路 / Approach

源码归档及资产完整性已经由 archive_source 统一负责;在原 launcher 增加 warm 专属调用,直接复用同一 product/runner pin 和 staging 规则,没有第二套校验器或状态 authority。

当前 PR 交付恢复前的源码准备拒绝,保留 worker 安装时的再次检查;不把一次预检提升为整个 checkpoint 已可用的证明。

已比较不改动、只检查 Git pin、另写资产 validator 和复用实际 archive owner:干净的 Git 状态无法证明忽略目录中的产物仍匹配源码,现有归档函数已经能检查这一点。提前归档增加一次 product tar 和可选 runner tar 的临时磁盘 I/O;安装时保留重验,可捕获预检后发生的变化。这是有用且可逆的局部修复,完整开销与 native 续跑资格继续按原边界验证。

输入 base 当前 head
过期 bundle、损坏资产、缺失 runner 子树 仍到达 task 准备,拒绝 oracle 失败 原归档错误提前拒绝
合法 warm、合法 split runner 到达 task 准备 同样到达
cold + 损坏的忽略目录 bundle 原有准备路径 原有路径保持

具体改动 / Changes

依据 benchmark/README.md,规范版本 92294e7。Explicit warm worker composition 的完整输入与既有 owner 组合保持;receiver installation 的原绝对 deadline 和安装计时计算未改;new isolated receiver 的失败保留规则保持:预检失败仍保留既有 attempt reservation,修复输入后使用新的隔离 receiver。没有改写活动运行、已结算 Turn 或额度。

关键代码讲解

  • main 先取得同一 product/runner pins,仅在完整 warm 参数已通过检查时进入临时目录,实际生成 product archive 和独立 runner 的 benchmark/runtime overlay,然后才调用 make_task_spec。cold 路径跳过新增归档,原 parser、默认参数及准备顺序保留。
  • archive_source 的实现未变。它执行真正的 git archive,核对 prepared bundle 的源码、manifest 和内容摘要,拒绝 symlink、额外或未提交输入;partial overlay 继续使用已有范围规则。
  • BenchmarkCodex._stage_source 保留安装前的同一校验。预检结果没有被缓存为恢复许可;稍后真正的 native restore 仍由原 owner 在 launcher 第 411 行执行,原 phase extension 参数和 epoch 处理均未改变。

完整差异为两个 Python 文件,+88/−2;六个新增案例放入既有 source-bundle 套件,未引入协议、设置、持久状态或另一个执行器。Python 位于现有 benchmark provider I/O 层,符合已有放置边界。

对主干的风险 / Risks

独立验证使用 macOS、Python 3.13.16 和实际安装的 SForge/Harbor 依赖;LoopX import 指向精确 checkout。源码仓库、忽略资产、manifest、tar 和错误都是实际文件操作。测试在 task materialization 处放置停止标记,以隔离 archive-before-native 的先后关系;这个标记不提供源码有效性,也不模拟一次成功的 native 恢复。

验证 结果
source-bundle 全套 PASS:14 passed,无 skip
warm-start / checkpoint-storage PASS:89 passed,1 skipped
同一份六案例在不可变 base 重放 3 个预期拒绝失败、3 个对照通过
相同六案例在当前 head 重放 PASS:6 passed;是敏感性复测,未重复计入 103 项
两个改动 Python 的 Ruff、双语 diff、diff hygiene PASS

Goal-scoped standard premerge 的 5 项 direct checks 通过,10 项 selected checks 中 9 项通过。余下 quota-plan smoke 在不可变 base 与当前 head 都于原 quota_plan_fixtures.py:700 报 KeyError: quota,完整 stderr 无须归一化即逐字相同,相关 smoke/CLI/projection 代码也完全相同;这项旧失败保留,当前源码归档行为已有独立通过证据。严格质量回执仍为 stale,benchmark manual hold 与整体 merge gate 未通过,不能把代码批准当作已就绪。

103 项通过与 1 项跳过是本轮实际结果;跳过项需要单独的 isolated Docker writer-barrier qualification。CI 按配置未查询或等待。预检只消除当时已存在的无效输入;之后的并发变化仍可能令 staging 拒绝,这正是保留第二次检查的原因。临时归档成本没有独立性能测量,不能推断整轮提速或更多模型工作。

我的整体评价 / Verdict

APPROVE,限这个精确 head 的源码准备切片。 实际 base/head 反例建立了旧缺口与新拒绝顺序的联系,合法 warm 和 cold 对照保持,既有 source owner 与 native 时钟/权限 owner 的分工清楚。代码批准与独立合并资格分别处理。

已检查 benchmark/edgebench/run.py 的 CLI 和 benchmark/runtime/harbor.py 的 staging 调用;没有浏览器或桌面渲染页面变更,viewport 证据不适用。

未验证范围是 live native capsule、Docker writer barrier、实际安装后的模型接续和完整 setup 成本;本地通过不替这些范围签收。失败后仍沿原隔离 receiver 路径恢复,无新增确认或人工输入轮次。

English verdict: APPROVE — dbb9164 rejects invalid warm install archives before task/native setup using the existing archive owner; 103 tests passed with one disclosed Docker qualification skip, and live/model/full-cost qualification remains separate.

@loopx-agent
loopx-agent merged commit a96e067 into main Nov 5, 2026
18 of 23 checks passed
@loopx-agent
loopx-agent deleted the codex/edgebench-restore-source-preflight-20261105 branch November 5, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants