update
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
# repo22 第二次总体进度报告
|
||||
|
||||
更新时间:2026-08-09 UTC
|
||||
|
||||
权威统计快照:`381349b3847209a67d669264ac54a50a3599915c`
|
||||
(该提交是当次 `xdm/main` 上完成 G3 报告后的快照)。
|
||||
|
||||
本报告只统计该快照已经提交的实现、正式批次和动态证据。TC060 源码修复与 G5
|
||||
压缩回归正在并行进行,但在形成完整报告并提交前不提前计为 PASS,也不改变下述
|
||||
冻结统计。
|
||||
|
||||
## 总体结论
|
||||
|
||||
- feature 实现、源码 code review、style review、FreeBSD 15 API 对齐和双配置构建
|
||||
布局已经完成阶段性收口。
|
||||
- 正式八组回归中,G1、G2、G3、G4 共执行 103 项:102 PASS,1 项
|
||||
`TC060 KERNEL-FAIL` 正在修复。
|
||||
- final review-fix 阶段还直接动态执行了 TC154-TC156,三项均 PASS。它们是三项
|
||||
额外且不与前述 103 项重叠的 TC,因此当前共有 106 个不同 TC 具备动态结果,
|
||||
其中 105 PASS、1 项待修。
|
||||
- TC154-TC156 已分配给 G8,但先行 PASS 不能重复计入“已完成 G8”,也不能把 G8
|
||||
标成已执行完毕。G8 尚有 TC111、TC131-TC133 未执行。
|
||||
- TC010 与 TC153 已通过真实大 sparse provider 的 FreeBSD 内核路径验证并转为
|
||||
RESOLVED。explicit extent 的 mapped compressed payload 正向 fixture 仍未获得,
|
||||
对应 issue 尚未解决。
|
||||
|
||||
## 实现与审查
|
||||
|
||||
repo22 已完成以下阶段性工程工作:
|
||||
|
||||
- 实现并审查 superblock、compact/extended inode、plain/inline/chunk 数据、目录与
|
||||
namecache、xattr/ACL/metabox、多算法压缩、fragment、multi-device、NFS export、
|
||||
vnode pager 和 fail-closed 元数据边界。
|
||||
- 对照 Linux EROFS 的磁盘 ABI、职责拆分和命名以降低长期维护偏差,同时保持
|
||||
FreeBSD vnode、GEOM、pager、NFS、ACL 和 `dev_t` 语义为行为权威。
|
||||
- 完成 overflow、长度、偏移、移位、signed/unsigned、目录大索引、48-bit union、
|
||||
NFS generation、special vnode 和 timestamp 等多轮独立 code review 修复。
|
||||
- 清理被跟踪的构建产物,统一 FreeBSD KLD 源文件布局、amd64 门控和
|
||||
`WITH_ZSTDIO=0/1` 构建方式;当前构建仍以 kernel `-Werror` 为门槛。
|
||||
- 删除会替代人工判定或无条件给出 PASS 的旧 CI 风格 runner/wrapper,保留可复现
|
||||
fixture transformer 与原生 syscall/probe 工具。当前任务不实现 CI。
|
||||
|
||||
## 正式八组状态
|
||||
|
||||
八组精确集合总计 156 项,彼此无重复、无遗漏。
|
||||
|
||||
| 组 | 精确集合 | 数量 | 快照状态 |
|
||||
|---|---|---:|---|
|
||||
| G1 | TC001, TC007, TC009, TC011-TC014, TC019-TC040, TC147, TC150, TC151 | 32 | 32 PASS,正式批次完成。 |
|
||||
| G2 | TC002, TC008, TC010, TC015-TC018, TC112-TC116, TC119 | 13 | 13 PASS,正式批次完成。 |
|
||||
| G3 | TC041-TC066, TC141, TC148, TC149, TC152, TC153 | 31 | 31 已执行;30 PASS,TC060 KERNEL-FAIL。 |
|
||||
| G4 | TC005, TC067-TC083, TC117, TC134-TC140, TC142 | 27 | 27 PASS,正式批次完成。 |
|
||||
| G5 | TC003, TC004, TC084-TC092, TC102-TC110, TC143-TC146 | 24 | 压缩回归正在进行,尚无正式整组结论。 |
|
||||
| G6 | TC006, TC093-TC101, TC118 | 11 | 尚未执行。 |
|
||||
| G7 | TC120-TC130 | 11 | 尚未执行。 |
|
||||
| G8 | TC111, TC131-TC133, TC154-TC156 | 7 | 正式整组未完成;TC154-TC156 已先行 PASS,TC111、TC131-TC133 尚未执行。 |
|
||||
|
||||
正式批次证据:
|
||||
|
||||
- [G1 报告](../../tests/results/manual/2026-08-09T0710Z-g1/manual-test-report.md)
|
||||
- [G2 报告](../../tests/results/manual/2026-08-09T0710Z-g2/manual-test-report.md)
|
||||
- [G3 报告](../../tests/results/manual/2026-08-09T1059Z-g3/manual-test-report.md)
|
||||
- [G4 报告](../../tests/results/manual/2026-08-09T0839Z-g4/manual-test-report.md)
|
||||
- [review-fix 报告](../../tests/results/manual/2026-08-09T0557Z-review-fixes/manual-test-report.md)
|
||||
|
||||
## 统计口径
|
||||
|
||||
正式批次已执行数为 `32 + 13 + 31 + 27 = 103`;PASS 数为
|
||||
`32 + 13 + 30 + 27 = 102`,另有 TC060 一项 KERNEL-FAIL。
|
||||
|
||||
TC154-TC156 来自 review-fix 阶段的 exact-source FreeBSD 动态运行,并未包含在
|
||||
G1-G4 的 103 项中。因此按“不同 TC 是否已有动态结果”计数,应增加三项,得到
|
||||
106 个 TC 有动态结果、105 PASS、1 待修。按“正式组是否完成”计数时,三项仍属于
|
||||
尚未完成的 G8,不能再次增加 PASS 数或宣称 G8 已完成。
|
||||
|
||||
## 大 Provider 验证
|
||||
|
||||
- TC010 使用逻辑长度 `17592193667072` 字节的 qualified sparse vnode provider,
|
||||
动态挂载了 `blocks_hi=1` 的 48-bit EROFS,并验证 `df` 的 64-bit 总量无截断。
|
||||
issue 已 RESOLVED。
|
||||
- TC153 使用逻辑长度 `8796093091840` 字节的 sparse GEOM provider,令超大
|
||||
FLAT_PLAIN 目录进入 `2147483648` 最终块索引的真实 kernel lookup 路径;固定 KLD
|
||||
在 cold lookup 和 readdir 后均返回 `EINTEGRITY`,没有错误缓存为 `ENOENT`。
|
||||
issue 已 RESOLVED。
|
||||
- explicit extent 已动态覆盖 hole record、header 选择和部分负向分支,但仍缺少
|
||||
mapped compressed payload 以及完整 record variant 的正向读取证据,不能关闭 issue。
|
||||
|
||||
## Issue 索引
|
||||
|
||||
| Issue | 当前状态 | 结论 |
|
||||
|---|---|---|
|
||||
| [TC060 standard pathconf](../../issues/TC060-pathconf-standard-values.md) | OPEN - KERNEL-FAIL | `_PC_NO_TRUNC` 与 `_PC_CHOWN_RESTRICTED` 返回 `EINVAL`;源码修复和复测正在进行。 |
|
||||
| [TC010 48-bit statfs](../../issues/TC010-48bit-statfs-large-provider.md) | RESOLVED - qualified sparse vnode provider validated | qualified 16 TiB 级 sparse provider 已完成真实 mount/statfs/df 验证。 |
|
||||
| [TC153 large directory index](../../issues/TC153-large-directory-block-index-validation.md) | RESOLVED - exact-source kernel validation passed | qualified 多 TiB sparse provider 已完成 exact-source 大索引 kernel lookup 验证。 |
|
||||
| [Explicit extent fixture](../../issues/extent-metadata-fixture-unavailable.md) | SHELVED - positive fixture unavailable | issue 未解决;尚无使用 explicit-record parser 的 mapped compressed payload 正向 fixture。 |
|
||||
|
||||
## 当前风险
|
||||
|
||||
- TC060 是已确认的 FreeBSD kernel behavior failure,修复必须保持 NAME_MAX、PATH_MAX、
|
||||
FILESIZEBITS、LINK_MAX、ACL 查询和未知键 errno 不回归,并完成 mount/md/KLD 清理。
|
||||
- G5 同时覆盖 LZ4、MicroLZMA、DEFLATE、ZSTD、ztailpacking、partial reference、
|
||||
explicit metadata 等多条压缩路径,fixture 资格和 `WITH_ZSTDIO` 配置差异仍是当前
|
||||
最大执行风险。
|
||||
- explicit extent 缺少上游工具可生成的 mapped positive fixture;静态 ABI 对照、
|
||||
hole record 和 malformed case 不能替代真实压缩 payload 读取。
|
||||
- G6 multi-device、G7 边界与压力类测试、G8 NFS/manual 页面仍需隔离 VM、精确 KLD、
|
||||
direct syscall/数据比较和完整清理,历史 feature 报告不能自动升级为本轮结果。
|
||||
- 并行 worktree 共享 `xdm/main`。每次 push 前必须 fetch/rebase,严格 pathspec,禁止
|
||||
force push;guest mount、md、KLD 和临时 provider 残留必须清零。
|
||||
|
||||
## 下一步
|
||||
|
||||
1. 完成 TC060 根因修复,重跑全部 pathconf 键与基础 mount/read smoke,更新 issue
|
||||
和 dated manual report。
|
||||
2. 完成 G5 的 24 项压缩回归,提交 exact KLD、fixture hash、errno/数据比较与清理
|
||||
证据。
|
||||
3. 依次完成 G6 11 项、G7 11 项和 G8 剩余 TC111、TC131-TC133;在 G8 汇总中引用
|
||||
或按要求复跑 TC154-TC156,但禁止重复计数。
|
||||
4. 聚合 `TEST-COVERAGE-MATRIX`,审计 156 项总数、组间重复、遗漏、动态证据来源和
|
||||
未解决 issue。
|
||||
5. 完成最终独立 source review,检查 lock/resource/error path;执行
|
||||
`WITH_ZSTDIO=0/1` 双配置 exact-source build,并做 `xdm/main`、remote/HEAD、
|
||||
tracked clean 和 guest 清理的最终 audit。
|
||||
Reference in New Issue
Block a user