Record the drill verdicts before opening the pull request
Why: The task card still said C4 and C5 had not run, which would make the pull request describe the wrong result. Evidence: B6, C4, and C5 receipts already on the card (SELF). drill_driver tests pass after grouping the imports. Impact: The card now states K4 failed and second-instance writes stay closed. No product code change. Refs: feature/u7-ops-drills Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,8 +10,8 @@
|
||||
- 授权与交付终点:B6 pgbench 基线、C4 PG/Redis 断连演练、C5 物理备份+WAL/PITR 与 pg_dump 恢复演练;隔离栈实跑、运维手册、检查单与 Documents 报告/方案 r2.2;Dev 与 Documents 两个 PR 合入并归档任务卡。不含重放、C3 双主机、产品代码、CI 工作流,以及第二实例写流量放行。
|
||||
- 交付模式:authorized-continuous
|
||||
- 自动推进授权:有;授权范围:本增量(B6/C4/C5 入口、隔离演练、手册、检查单、Documents 报告与方案 r2.2、组合测试、PR、合入核验与任务卡归档);授权来源:用户 2026-10-12「不要做重放了,继续推进」并指示按已附计划实施;授权终点:Documents 与 Dev PR 合入、任务卡归档;停止条件:演练暴露产品缺陷则该轨记 FAIL 并停(不改产品代码);任一步可能触及非演练服务、端口或主检出则立即中止;计时类演练开始前磁盘余量低于 100GB 或 load average 高于 16 则暂停重跑
|
||||
- 当前阶段:实施与自检;当前增量:I3(C5 备份恢复)
|
||||
- 基线说明:计划起草时主检出为 ac1de9c;本次 precheck 的权威 main 已前进到 R0 8ebf502146(含 #470 钉住 backend EXT-8b)。backend gitlink 仍为 8e509775d39d1455b69be44803037faa7af844b4,与计划一致。
|
||||
- 当前阶段:正式测试与验收(本地 SELF 已重跑;CI GATE 待 PR HEAD);当前增量:I5(测试、同步、PR、合入)
|
||||
- 基线说明:计划起草时主检出为 ac1de9c;本次 precheck 的权威 main 已前进到 R0 8ebf502146(含 #470 钉住 backend EXT-8b)。启动时 backend gitlink 为 8e509775d39d1455b69be44803037faa7af844b4。验收前 task-sync 并入权威 main 后,backend gitlink 为 0f192a481388184df39f81c28b0587a7e16ec3ca,Documents gitlink 为 f76cce9e32e9927bb80319698dcd0c958b358ded。演练数字仍绑定测量时的 SHA,不改写成新 pin。
|
||||
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
|
||||
|
||||
## 目标与非目标
|
||||
@@ -49,9 +49,9 @@
|
||||
| 需求表确认 | 本卡 B6 / C4-PG / C4-Redis / C5 | 通过 | 用户 | 2026-10-12 | 同上 |
|
||||
| 方案设计 | 计划演练设计与判据 | 通过 | 用户 | 2026-10-12 | 同上 |
|
||||
| 实施计划 | 计划执行顺序 I0–I5 | 通过 | 用户 | 2026-10-12 | 同上 |
|
||||
| 实施与自检 | 待定 | 未评审 | — | — | — |
|
||||
| 正式测试与验收 | 待定 | 未评审 | — | — | — |
|
||||
| 代码 Review | 待定 | 未评审 | — | — | — |
|
||||
| 实施与自检 | 脚本与自检提交(至 19bc78d / 6101e8c) | 通过 | 实施智能体 | 2026-10-12 | 正常/拒绝/SIGINT 自检;B6/C4/C5 实跑收据 |
|
||||
| 正式测试与验收 | 2eff856(make test 的 before=794e51b,在并入 main 之后) | SELF 通过;GATE 待 PR HEAD 的 ci/test 与 ci/test-pg | 实施智能体 | 2026-10-12 | CMD="make test" make evidence exit 0。较早的 120a47d 收据早于 main 合并,不作为验收依据 |
|
||||
| 代码 Review | 开 PR 前的分支头(含 holes_test.go 的 import 分组) | 通过(实施者自审,不是独立审阅) | 本会话实施智能体 | 2026-10-12 | 相对 origin/main 无产品代码与 CI 工作流改动。K4 记 FAIL 并停该轨。第二实例写流量不放行 |
|
||||
| 合入 | 待定 | 未评审 | — | — | — |
|
||||
| 合入核验与收口 | 待定 | 未评审 | — | — | — |
|
||||
|
||||
@@ -60,14 +60,17 @@
|
||||
| 增量/试验 | 假设 | 范围 | 判断和停止条件 | 批准依据 | 结果 | 变更影响 | 需重审补测 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| I1 B6 | 隔离 pgbench 能给出可复核的数据库基线 | u7bench:18995,scale 100,10/30/100 客户端 | 失败事务非 0 或触及非演练端口则停 | 计划获批 | PASS(SELF,results/pgbench-20261012-131948;失败事务 0;100 客户端按 max_connections 封顶为 95)。首轮解析把 stdout 当延迟样本而 exit 1,修复后重跑。load>16 的一次 exit 3 未开窗口 | 无产品改动 | 否 |
|
||||
| I2 C4 | PG/Redis 断连满足 F/G 判据或暴露可记录的缺陷 | u7drill 双实例,端口 18990–18996 | 产品缺陷记 FAIL 并停该轨 | 计划获批 | NOT_RUN | 待评估 | 待评估 |
|
||||
| I3 C5 | 物理+逻辑备份能恢复到新目标并满足 RPO/RTO | u7bk 源 + 新数据目录,contract seed | RPO/RTO 超标或数据丢失记 FAIL | 计划获批 | NOT_RUN | 待评估 | 待评估 |
|
||||
| I2 C4 | PG/Redis 断连满足 F/G 判据或暴露可记录的缺陷 | u7drill 双实例,端口 18990–18996 | 产品缺陷记 FAIL 并停该轨 | 计划获批 | PASS(SELF,results/fault-20261012-142734)。pg-stop 与 pg-kill 的 F1–F5 过,RTO 不到 1 秒。Redis G1–G3 过(共享 20、断连约 40、恢复 20)。G4 降级不可见、G5 启动拒绝记为发现。首轮把时间线会话上的 409 误判,改在新会话上测恢复后重跑 | 无产品改动 | 否 |
|
||||
| I3 C5 | 物理+逻辑备份能恢复到新目标并满足 RPO/RTO | u7bk 源 + 新数据目录,contract seed | RPO/RTO 超标、已提交数据丢失或工件不一致记 FAIL 并停该轨 | 计划获批 | 部分通过(SELF,results/backup-20261012-153441)。K1/K2/K3/K5/K6/K7 过:RPO 64s,RTO 4s。K4 FAIL:未设置 BLOBSTORE_S3_ENDPOINT 时上传在空的 *S3 上 panic,工件校验未完成。该轨按停止条件停止,不改产品代码 | 暴露既有上传缺陷;手册与检查单已记录 | 修缺陷后重测 K4,不在本任务 |
|
||||
| I4 | 手册、检查单与 Documents 报告反映实跑 | docs/svc.md §8.6/§8.7;检查单;Documents PR #90 | 不得把 K4 写成通过,不得放行写流量 | 计划获批 | PASS。Documents PR #90 已合入 f76cce9;Dev gitlink 已钉住。方案升到 r2.2 | 文档与 gitlink | 否 |
|
||||
|
||||
## 同步记录
|
||||
|
||||
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|
||||
|---|---|---|---|
|
||||
| 启动 | 8ebf5021468a1301ccbe2fe0568508e16d8bb708 | 8ebf5021468a1301ccbe2fe0568508e16d8bb708 | 2026-10-12T13:05:15Z |
|
||||
| 验收前 | cd61bbb112eea6a210a64e84f2cef00b0d64bfc1 | adbce4d1ed | 2026-10-12T15:59:19Z |
|
||||
| 请求审核前 | cd61bbb112eea6a210a64e84f2cef00b0d64bfc1 | 2eff856605 | 2026-10-12T16:05:18Z |
|
||||
|
||||
## 证据(Evidence)
|
||||
|
||||
@@ -77,18 +80,18 @@
|
||||
|
||||
## 结果与验证(完成后填写)
|
||||
|
||||
- 结果:
|
||||
- 验证:<结论摘要 PASS/FAIL/SKIP/NOT_RUN 逐项;逐条证据由 make evidence 写入上方证据表>
|
||||
- 影响与剩余项:
|
||||
- 结果:B6 PASS(SELF)。C4-PG 与 C4-Redis 的放行判据 PASS(SELF),G4/G5 为预期发现。C5 的 K1–K3 与 K5–K7 PASS(SELF),K4 FAIL。Documents 报告与方案 r2.2 已随 PR #90 合入。第二实例写流量仍不放行。
|
||||
- 验证:逐条命令、SHA 与输出在下方 JSON 收据(SELF)。组合测试在并入 main 之后的 794e51b 上 `make test` exit 0。CI 的 `ci/test` 与 `ci/test-pg` 仍待 PR HEAD,本地结果不能代替 GATE。
|
||||
- 影响与剩余项:不改产品代码。K4 的空 `*S3` 上传 panic 留到后续任务。下一任务不自动启动:独立 REPLAY 或把 C4/C5 快速档接入 CI(需平台准入);C3 需要第二台主机;修复上传缺陷后重测 K4。
|
||||
|
||||
## 规划进展与下一步
|
||||
|
||||
- 本次推进/剩余:待核对(依据实际成果更新适用方案/规划)
|
||||
- 首选下一任务:待核对(无适用规划、已完成或受阻时如实说明,不虚构任务)
|
||||
- 推荐依据:待填写
|
||||
- 前置条件/待确认:待核对
|
||||
- 预期产物/验收条件:待定义
|
||||
- 重复任务核对:待核对(已有/在途任务、PR 与规划记录)
|
||||
- 本次推进/剩余:B6、C4、C5 入口与 SELF 结果已落在本分支;Documents 侧已合入。剩余是 Dev PR 的 CI GATE、合入核验与任务卡归档。
|
||||
- 首选下一任务:修复未配置 `BLOBSTORE_S3_ENDPOINT` 时把空 `*S3` 当作 blobstore 导致上传 panic 的缺陷,然后重测 C5 K4。并列且互不依赖:独立 REPLAY,或经平台准入后把 C4/C5 快速档接入 CI;C3 待第二台主机。
|
||||
- 推荐依据:方案 r2.2 与检查单放行结论。K4 是已复现的产品缺陷;REPLAY/C3 是写流量放行仍缺的两项。
|
||||
- 前置条件/待确认:上传修复需单独授权,且不在本任务范围。REPLAY 需要独立审阅者。C3 需要第二台主机。CI 快速档需要平台准入。
|
||||
- 预期产物/验收条件:K4 重测时 RPO 点前工件 sha256 一致且跨用户访问被拒绝;写流量放行仍要求 GATE 或独立 REPLAY,外加 C3。
|
||||
- 重复任务核对:本分支与 Documents PR #90 已覆盖 B6/C4/C5 演练。不另开重放任务。
|
||||
- 启动授权:未授权(建议不自动启动新任务,仍须明确授权)
|
||||
|
||||
## 合入与清理
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package main
|
||||
|
||||
import "reflect"
|
||||
import "testing"
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSeqHoles(t *testing.T) {
|
||||
if got := seqHoles(nil); got != nil {
|
||||
|
||||
Reference in New Issue
Block a user