Skip to content

Retain Official benchmark workers after confirmed failure - #8404

Merged
huangruiteng merged 1 commit into
mainfrom
codex/benchmark-official-failure-retention
Nov 9, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/benchmark-official-failure-retention

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

When the native Official solver still exited nonzero after its automatic resumes, the runner removed its worker container. This could erase unsubmitted work and the session needed to investigate or resume the run.

With the existing --preserve-failed-worker option, native feedback now keeps the exact stopped worker after a confirmed final solver failure. Intermediate retries and grading drain still run normally. The option stays off by default, and successful exits still clean up. The receipt identifies the preserved source; it does not certify that a resumable checkpoint was exported.

Validation: 353 focused tests passed. Docker tests used the pinned SForge provider and an independent native evaluator to verify automatic retry, one accepted grade, final worker retention, normal and flag-off cleanup, and retention when writing the receipt fails.

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

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

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, reasoning_effort=max

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机 / Motivation

Official benchmark 在自动续跑后确认失败时,默认清理会一起删除原 worker 和未提交工作。对照重放:同一个 runner 先失败、自动续跑,再完成一次 native 评分和最终归档。显式启用后,当前提交保留确认失败的原 worker,原评分记录仍可读。此次使用真实 runner 与本地 native HTTP evaluator,Docker 传输和任务是合成夹具。真实 Docker 现场和后续续跑资格仍需单独验收。

改动思路 / Approach

复用现有 native 返回证据和最终 cleanup 入口。范围只包括显式启用的 Official/native 路径与已有停止核验。后一次 solver 派发清除上一段证据,只有确认的最终非零返回进入保留分支;其余沿原清理。保留收据区分停止确认、尝试捕获与恢复资格。

具体改动 / Changes

评审 ad706ed,PR 基线 c44eb15,6 个路径,+202/−27;实际主干 71190b6 的 #8402、#8403 改动与这些路径不重叠,合并树干净。对照原地续跑和证据边界:explicit-official-admission、retain-after-final-grade、uncertain-stop-and-receipt 已复测,installed-restore-qualification 仍独立。

关键代码讲解

  • CLI 只为 Official/native 和 agent-only 评分的显式选项启用。其他 profile 与原 checkpoint 路径保留自己的限制。
  • backend 从实际 solver 命令和 SForge 的结构化退出信息取证;最终清理 才请求停止。保留收据 不授予恢复资格。

对主干的风险 / Risks

固定 SForge 的实际 CLI 对照,两版各 7 个用例,都执行一次自动续跑、接收一次合成评分,并在归档和评分完成后才停止 worker。候选只保留已确认失败且显式启用的原 worker 和未提交字节;关闭选项、成功、未观察到终止或超时仍删除。停止失败时收据标为未确认,收据写入失败时无收据,两者都保留现场。宽套件 409 项通过、12 项 Docker 用例跳过;唯一缺少 Linux guest 解释器的失败在同环境基线也复现。预合并的 5 项直接和 19 项自动检查通过,benchmark 人工门仍单独保留。

我的整体评价 / Verdict

认可当前提交。真实 CLI 已完成启用、评分、停止与结果读回的隔离对照;保留现场不等于恢复验证。此次未复跑作者报告的真实 Docker 组合,也未启动真实 benchmark 或付费模型。

English verdict: APPROVE. Explicit Official retention preserves the same worker only after confirmed final failure and grading drain. Default cleanup and the separate checkpoint/restore boundary are preserved.

@huangruiteng huangruiteng 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-5, OpenAI, self_reported

Independent approval

动机 / Motivation

Official benchmark 在自动续跑后确认失败时,默认清理会一起删除原 worker 和未提交工作。Official benchmark 维护者。对照重放中,同一个 runner 先失败、自动续跑,再完成一次 native 评分和最终归档;显式启用后,当前提交保留确认失败的原 worker,原评分记录仍可读。显式启用后最终失败 worker 停止但保留。保留原 container 与未提交 bytes,receipt 不授予恢复资格。此次使用真实 runner 与本地 native HTTP evaluator,Docker 传输和任务是合成夹具;当前本机 Docker daemon 不可用,因此复用同一 exact head 的既有 Docker 证据,并重新执行了相关普通测试。保留 receipt 只记录 source retention,不授予 checkpoint 导出或恢复资格。不导出认证、不建立 checkpoint、不授权 resume。

改动思路 / Approach

复用现有 native 返回证据和最终 cleanup 入口。范围只包括显式启用的 Official/native 路径与已有停止核验。后一次 solver 派发清除上一段证据,只有确认的最终非零返回进入保留分支;其余沿原清理。保留收据区分停止确认、尝试捕获与恢复资格。默认值仍为 off;成功、未观察到终止或超时仍删除,receipt 写失败也不会 fall through 到删除。显式选项只改变最终失败清理,默认与恢复资格保持分离。本次覆盖 Official/native、最终评分、stop/receipt 失败;真实恢复另验。

具体改动 / Changes

评审 ad706ed0c95f2df918bcb1e7e12880de1ba01217,PR 基线 c44eb156d947198b9b5e36e1f9444afbbf9b205b,6 个路径,+202/−27。对照原地续跑和证据边界:explicit-official-admission、retain-after-final-grade、uncertain-stop-and-receipt 已验证,installed-restore-qualification 仍独立。

关键代码讲解

  • CLI 只为 Official/native 和 agent-only 评分的显式选项启用。其他 profile 与 checkpoint 路径保留自己的限制。
  • backend 从实际 solver 命令和 SForge 的结构化退出信息取证;最终清理 才请求停止。
  • 保留收据 不授予恢复资格,且 stop/receipt 异常不会删除已保留现场。

对主干的风险 / Risks

最强反例是把自动续跑中的中间非零返回当成最终失败,或把成功/超时运行误留为失败现场。当前只在新的 solver dispatch 清零证据、最终返回同时满足 terminal_observed、正 native code、非 timeout、无 stop event 时设置保留;cleanup 只在最终边界读取。关闭选项、成功、未观察到终止或超时仍删除。停止失败时 receipt 标为未确认,receipt 写入失败时无 receipt,两者都保留现场。

exact head 的相关 benchmark 选择测试通过 82/82、382 skipped,新增 Docker 用例在本机因 daemon 不可用跳过;同一 exact head 的既有 SForge 对照已覆盖启用、自动续跑、一次评分、最终停止、默认清理和 receipt 失败,本轮复用该 source-bound 证据。Git diff 与最新 main merge-tree 均无冲突。远端旧 head 的失败 shards 作为独立 merge-readiness hold。

我的整体评价 / Verdict

认可当前提交。真实 CLI 已完成启用、评分、停止与结果读回的隔离对照;保留现场不等于恢复验证,也不是新的 checkpoint 或权限。当前本机 Docker 不可用是明确 evidence gap,但 changed invariants 已有 exact-head source 证据和当前普通测试覆盖。

English verdict: APPROVE for ad706ed. Explicit Official retention preserves the same worker only after confirmed final failure and grading drain. Default cleanup and the separate checkpoint/restore boundary are preserved.

@huangruiteng
huangruiteng merged commit 1c12b88 into main Nov 9, 2026
28 of 36 checks passed
@huangruiteng
huangruiteng deleted the codex/benchmark-official-failure-retention branch November 9, 2026 18:58
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