11 KiB
repo22 G1 Full Manual Regression Report
Execution window: 2026-08-09 06:30-07:10 UTC
Code baseline: cd0e985b5ac54a4b7acb7042422329ad1729fb3e
Guest: FreeBSD 15.0-RELEASE-p8 amd64, QEMU TCG, FreeBSD clang 19.1.7
Scope and Method
This run covers exactly these 32 test cases and no others:
TC001, TC007, TC009, TC011-TC014, TC019-TC040, TC147, TC150, TC151
Every test was executed directly from its Markdown procedure. No CI, runner, or wrapper supplied a result, and no historical run was accepted as current evidence. Each test used a fresh dynamically allocated md provider and was cleaned before the next test.
Set audit: requested 32, selected 32, unique 32, duplicate 0, missing 0, extra 0.
Exact Build
The source archive exported from the code baseline had SHA256
5b7fd2ac32ecf791f71c74849a6e8c1775e442d1be3c7852c654d074b2c8351b.
The module was built natively in the guest with:
FREEBSD_SRC=/tmp/repo22-freebsd15-src WITH_ZSTDIO=0 ./build.sh
The build completed with kernel -Werror. The module had no unresolved
bcmp or ZSTD_* symbols.
| Item | Value |
|---|---|
| Source commit | cd0e985b5ac54a4b7acb7042422329ad1729fb3e |
WITH_ZSTDIO |
0 |
| KLD SHA256 | 023ddf0ea2205977f5921715d2a6206b607806840180ddf470103fd1d6deba84 |
| Loaded module | KLD ID 20, size 0xb8a8, erofs.ko |
| Guest userland/kernel | 15.0-RELEASE-p8 / 15.0-RELEASE-p8 |
The later documentation-only progress commit 573aaab7ee0b47cb6aed7f76c52c68dd4041326b
did not alter src/; the KLD therefore remains an exact build of the stated
code baseline.
Fixture Qualification
tests/prepare_g1_fixtures.sh generated deterministic sources and production
erofs-utils 1.8.6 images. tests/g1_fixtures.py applied structured,
field-checked transforms and recalculated checksums. Independent empty output
directories repo22-g1-repro-c.6IK7SM and repo22-g1-repro-d.egVQgj produced
byte-identical source manifests, metadata, image manifests, and structured
evidence.
| Manifest | SHA256 |
|---|---|
SOURCE-SHA256SUMS |
5ce53780f455208cb1efbf2738429a1f6f5c4eb3af1663779815c6afc0fea2bc |
SOURCE-METADATA |
bd27480c238ffff441d328ab71775989611d057ffaed691dae0238f738371e46 |
images/IMAGE-SHA256SUMS |
54fb256b3847acc8b1e735eacaace56c1747f65237ee5730b2b5fa3e3ab2b0f3 |
images/fixture-evidence.txt |
84e8e2e595a88e034ea0a05777207d4e3430e4e764a7fbc4d4a4770defcca3db |
| Image | SHA256 |
|---|---|
compact-dot-omitted.erofs |
bbd1d3d9f619a71ed7a874feb8c437aa9bf3e86f671abfa243a85de57e809d54 |
compact-nlink1.erofs |
c9ecfc29fbd45a2c37c6422d689ac340943dbc23ee4428ffd4698ef88e0b331d |
compact.erofs |
41004ed19d58e698f277cb268b570b87203c2ba08ea4a68a72f6e3b1c7aec47a |
extended-large-hole.erofs |
7a69d791742096ddfece20c7a793d828ec7e887352d0b62f22839f66ecb26a6d |
extended-size-bit63.erofs |
9413a4197f5b2c43876e257690a5f96e82f61b2b62084e2df688144070f0825b |
extended.erofs |
3d96fd292749f1ef7ae72f8e370fc8a94231ed575fb36a6d66784a59d8c4ffa7 |
fallback-48bit-root2.erofs |
8217da2ae664358e12d357524ef0bb52a897f1ed206b2353c2a2033b76d4ae79 |
flat.erofs |
3785ca07e7bd16f6c611191596ae0314253c0ae9b7217a4b22de25799b0f08ac |
inline-cross-block.erofs |
354b674fd144cab93403d47ad95135968c24d41b34a8c908aa6717882243e936 |
inline-zero.erofs |
c894f249ca6d4a7a16c7eb728687c6aba1f948630c4f72e20680655c0fca70c0 |
inline.erofs |
1474c310a80766666c1d578174ca03972fb9e03dff8c2357a37883151d4acc47 |
invalid-dirent-nid.erofs |
309d6829ebc87c22ae6ba23f07ae0b00a62c7e657c3cc2ec46fe6a64d24eea69 |
root8-48bit.erofs |
2f48797586395ff7d2204d43e67d6e2aaaa04c9bdfb162c5c5e2c24dc6e88893 |
The corrected dot-omitted directory has size 35 and on-disk names
..,child.txt. Its encoding was independently checked with erofs-utils 1.9.3,
including a passing fsck.erofs; erofs-utils 1.8.6 does not recognize the
48-bit incompat feature and was not used to claim support for that image.
Per-Test Results
| Test | Result | Actual command summary and observable evidence | Cleanup |
|---|---|---|---|
| TC001 | PASS | mdconfig, mount -t erofs -o ro, cmp, sha256, statfs_probe; root source/mount SHA 04690aad...3105, blocks 17, files 15, readonly 1. |
mount 0, md 0 |
| TC007 | PASS | Two fresh providers and concurrent mounts; both waits returned 0, and source/mount1/mount2 testfile SHA was 0e5303ad...e3b1. |
mounts 0, md units 0 |
| TC009 | PASS | statfs_probe, df -kT, df -iT; bsize 4096, blocks 17, free 0, files 15, ffree 0, 68 KiB used, readonly 1. |
mount 0, md 0 |
| TC011 | PASS | stat, complete top-level name comparison, root payload cmp; root inode 36, directory mode 0755, nlink 4, root SHA 04690aad...3105. |
mount 0, md 0 |
| TC012 | PASS | getfh, fhstat, fhopen, repeated handle comparison; fsid 00000063:000000e0, NID 71, generation 2262931519, data SHA 0e5303ad...e3b1. |
mount 0, md 0, outputs 0 |
| TC013 | PASS | Patched dirent NID 59 to 3200 with valid CRC; two read_probe expect-error calls returned errno 97 and truss showed fstatat ERR#97; dmesg 123->123. |
mount 0, md 0, outputs 0 |
| TC014 | PASS | Structured superblock inspect plus mount/statfs; magic 0xe0f5e1e2, block bits 12, root NID 36, blocks 17, inodes 15, dmesg 123->123. |
mount 0, md 0 |
| TC019 | PASS | Mounted actual feature=0x80 rootnid_8b=36 blocks_hi=0 image; root inode 36, blocks 17, root SHA 04690aad...3105. |
mount 0, md 0 |
| TC020 | PASS | stat, cmp, sha256 on compact small.txt; NID 65, size 22, nlink 1, blocks 8, SHA 6e0d152a.... |
mount 0, md 0 |
| TC021 | PASS | Field evidence i_format=0x14 i_nb=0x1234; mounted NID 63 reported nlink 1 and source-exact SHA ff151c.... |
mount 0, md 0 |
| TC022 | PASS | Structured raw rdev 0x543abc21; native special-node probe reported char/block major 2748, minor 344865, while FIFO rdev was NODEV. |
mount 0, md 0 |
| TC023 | PASS | Extended inode NID 45, 64-byte inode, size 2097883; stat, full cmp, SHA eed000b0... all matched source. |
mount 0, md 0 |
| TC024 | PASS | Size 4294971393 sparse fixture; three 65536-byte reads at offsets 0, 2147483648, and 4294905857 matched deterministic zero source SHA de2f2560.... |
mount 0, md 0, outputs 0 |
| TC025 | PASS | Baseline and patched mounts checked single NID 63/nlink 1, hard-a and hard-b NID 57/nlink 2, and dotdir NID 53/nlink 2; all source comparisons passed. |
mounts 0, md units 0 |
| TC026 | PASS | Valid bit-4 fixture evidence: size 35, on-disk ..,child.txt, root8 36; listing synthesized ., retained .., and child SHA matched de256820...41f0. |
mount 0, md 0 |
| TC027 | PASS | Host dump.erofs --ls --path=/dotdir showed explicit .,..,child.txt; guest listing and child cmp matched SHA de256820...41f0. |
mount 0, md 0 |
| TC028 | PASS | flat.erofs layout 0 small file; size 25, blocks 8, source/mount SHA bb9c1e27...f486. |
mount 0, md 0 |
| TC029 | PASS | Full medium-file cmp SHA 471108a5...12e6; pread offset 40960 length 20480 matched independent range SHA 72142972...5fb. |
mount 0, md 0, output 0 |
| TC030 | PASS | 10485791-byte full dd/cmp SHA 0b39b8a4...c56e; 1 MiB read at 5 MiB matched SHA c26bb16b...ba5c. |
mount 0, md 0, outputs 0 |
| TC031 | PASS | Inline tiny.txt evidence layout 2; size 12, blocks 8, source/mount SHA 863f7088...73f38. |
mount 0, md 0 |
| TC032 | PASS | Explicit layout-2 zero-length inode; size 0, blocks 0, EOF clean, both hashes e3b0c442...b855. |
mount 0, md 0 |
| TC033 | PASS | 5000-byte tailpacked file full SHA e4c7fbec...b2a6; 64-byte range crossing offset 4096 matched SHA 6ff6b010...c0e. |
mount 0, md 0, outputs 0 |
| TC034 | PASS | Evidence layouts for 4095/4096/4097 were 0/0/2; full SHAs 5255d8c8..., 677802c8..., eda39df0...; nine-byte boundary range SHA 9e67b4e5...182c. |
mount 0, md 0, outputs 0 |
| TC035 | PASS | Sequential 4096-byte dd to exact EOF at size 262163; source/output SHA 056f8f75...3433. |
mount 0, md 0, output 0 |
| TC036 | PASS | Independent pread start/mid/end ranges returned 10240/10240/24576 bytes at exact offsets; SHAs 5b6a742e...d858, 29fa7799...849, 6477f5a2...163d. |
mount 0, md 0, outputs 0 |
| TC037 | PASS | 104857857-byte full dd took 61.44 s and matched SHA 1c8daa29...c661; 5 MiB sample at 50 MiB matched SHA f1b60e95...25c7. |
mount 0, md 0, outputs 0 |
| TC038 | PASS | readlink returned exact target.txt; followed target source/mount SHA 887f519c...8ea3. |
mount 0, md 0, outputs 0 |
| TC039 | PASS | Evidence size 73/layout 2; source and mounted long targets matched, output was 74 bytes including newline, followed file SHA 06539545...0f42. |
mount 0, md 0, outputs 0 |
| TC040 | PASS | Source/mounted target was /nonexistent/repo22-g1-target; two follow attempts returned exact errno 2 at open. |
mount 0, md 0, outputs 0 |
| TC147 | PASS | Positive inline file SHA 0347f272...b01; checksum-valid cross-block image returned errno 97 twice and truss fstatat ERR#97; dmesg 123->123. |
mounts 0, md units 0, outputs 0 |
| TC150 | PASS | Current-KLD rerun with feature=0x80 rootnid_2b=36 rootnid_8b=0 blocks_lo=17; root inode 36, root SHA 04690aad...3105, statfs blocks 17. |
mount 0, md 0 |
| TC151 | PASS | Current-KLD rerun: two direct opens returned errno 97, truss showed fstatat ERR#97, both mmap helpers exited 1 at open with integrity failure; dmesg 123->123. |
mount 0, md 0, outputs 0 |
Outcome
| Result | Count |
|---|---|
| PASS | 32 |
| KERNEL-FAIL | 0 |
| SHELVED/ISSUE | 0 |
| ENVIRONMENT-UNAVAILABLE | 0 |
No G1 issue file was created. Existing issue files concern other groups or previously documented limitations and were not changed by this run.
Discarded Attempts
- TC013 initially asserted a nonportable
stat(1)wrapper exit status. The qualified run used two direct syscall probes and truss errno instead. - TC026 first exposed an invalid transformer assumption: a NUL had been added
after non-trailing
... That image was discarded, the transformer was fixed, independent 1.9.3 validation and two-build reproduction passed, and TC026 was rerun with the corrected image. - TC037's first long-running remote stream did not preserve its final output. It was not counted; the complete qualified rerun retained elapsed time, both hashes, and cleanup evidence.
- TC151 had two pre-mount/post-evidence command assertions with incorrect grep keys. Neither was counted; the complete qualified rerun used syscall errno and per-output integrity counts.
Final Cleanup
Before final unload, kldstat showed ID 20 and the exact KLD SHA256 above.
After kldunload erofs, the guest reported:
erofs_mounts=0 md_units=0 kld_present=0
Generated fixtures, build objects, and native probes remain only in /work/build
and guest /tmp; none is staged for the repository.