Files
HomeAgent/.github/workflows
JianFeeeee 2b32934150 ci(race): 撤 KERNEL-REGISTRY-SETLOCK 排除项(表改显式空表标记)+ 删证据步②
c20e7c6 标题声称「撤掉证据步②」,但其 diff 只做了两件事:
把 8cfb3e0 的 `# none` 空表标记回滚成 pkg 排除行,并给空表守卫加了
`&& false` 死条件。证据步②一行未删。本 commit 补做其声称之事。

## 改了什么

1. ci.yml 的 TABLE heredoc 数据行:
     pkg|internal/kernelmod/all|…|KERNEL-REGISTRY-SETLOCK
   → `# none`
   恢复 8cfb3e0 的本意:排除项撤掉后,表必须留下显式空表标记,
   否则「删空」与「漏写标记」不可区分(ID:19 的守卫会判红)。

2. 删除证据步②整块(注释块 + step + 收尾 echo):
   该步的判据是「7 个 Set* 仍是单行无锁直写」,而 registry.go 里
   这 7 个已被 19c78ca 全部改为取写锁 ⇒ 该步按其自身设计必然报红
   (实测 EXIT=1,原文「仍为无锁直写的 Set*: 0/7」+ ::error)。
   排除项已撤、缺陷已修,该步的因果链已闭合,整体移除;
   不换成「跑 N 次 0 条 DATA RACE」这类拿偶发概率充判据的替代品。

## 不在本 commit 范围(明确留手)

· check-ci-gates.py 第 6 段 `KERNEL-REGISTRY-SETLOCK` 断言未动 ——
  它是条件式(`if … or "pkg" in allrace`),表空时整段自动跳过,不会红。
· `&& false` 未动 —— 已由 c963d84 修好。
· bootgraph_test.go 未动。
· 19c78ca 的业务代码(registry.go / registry_setlock_test.go)未动。

## 实证(提交前实跑)

· yaml.safe_load → yaml OK(EXIT=0)
· python3 .github/scripts/check-ci-gates.py → EXIT=0
  原文「CI 门禁自检通过:动态枚举 / 排除表校验 / 启动图判据步骤 / 交叉枚举 / 全部 run 步骤语法」
· grep -n '&& false' .github/workflows/ci.yml → 0 命中(exit=1)

Co-authored-by: pi <pi@local>
2026-10-25 08:19:58 +08:00
..