7.5 KiB
7.5 KiB
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 尚未执行。 |
正式批次证据:
统计口径
正式批次已执行数为 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 | OPEN - KERNEL-FAIL | _PC_NO_TRUNC 与 _PC_CHOWN_RESTRICTED 返回 EINVAL;源码修复和复测正在进行。 |
| TC010 48-bit statfs | RESOLVED - qualified sparse vnode provider validated | qualified 16 TiB 级 sparse provider 已完成真实 mount/statfs/df 验证。 |
| TC153 large directory index | RESOLVED - exact-source kernel validation passed | qualified 多 TiB sparse provider 已完成 exact-source 大索引 kernel lookup 验证。 |
| Explicit extent fixture | 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 残留必须清零。
下一步
- 完成 TC060 根因修复,重跑全部 pathconf 键与基础 mount/read smoke,更新 issue 和 dated manual report。
- 完成 G5 的 24 项压缩回归,提交 exact KLD、fixture hash、errno/数据比较与清理 证据。
- 依次完成 G6 11 项、G7 11 项和 G8 剩余 TC111、TC131-TC133;在 G8 汇总中引用 或按要求复跑 TC154-TC156,但禁止重复计数。
- 聚合
TEST-COVERAGE-MATRIX,审计 156 项总数、组间重复、遗漏、动态证据来源和 未解决 issue。 - 完成最终独立 source review,检查 lock/resource/error path;执行
WITH_ZSTDIO=0/1双配置 exact-source build,并做xdm/main、remote/HEAD、 tracked clean 和 guest 清理的最终 audit。