Files
erofs-freebsd-out-tree/tests/results/manual/2026-08-08T1413Z/manual-test-report.md
T
2026-08-18 09:20:44 +02:00

6.3 KiB

repo22 compressed mapping shape manual test report

  • Date: 2026-08-08 UTC
  • Source baseline: b1f9e7c0ef5ffb9c4aab38e4047534ad2071af6c
  • Remote baseline before testing: xdm/main at the same commit
  • FreeBSD guest: 15.0-RELEASE-p8 amd64, QEMU TCG
  • Image tool: erofs-utils 1.8.6
  • Module SHA256: 4b3459a02da29642cb8e61f58e34ff5266e668e86256937c91b8af7e0e31fdcb
  • Scope: manual image generation, layout inspection, and the completed compact-index kernel reads; no CI or test wrapper was added

Status definitions

Status Meaning
PASS The stated mkfs/layout or kernel operation was actually run and matched its deterministic expectation
KERNEL-FAIL A real image reached the FreeBSD kernel path and failed
MKFS-UNAVAILABLE erofs-utils 1.8.6 cannot generate the required format directly
TEST-DOC The existing Markdown command or assertion does not deterministically test the stated feature
NOT RUN The fixture was generated, but kernel execution stopped on user request and no feature pass is claimed

Generated fixture matrix

All images were regenerated under /work/build/repo22-shape-manual-20260808T1407Z with fixed timestamps, root ownership, disabled xattrs, and a cleared UUID. Images, sources, VM state, and module build products were not staged.

Shape mkfs/layout status Evidence Kernel status
Compact indexes PASS default -zlz4 -C4096; /shape.dat is Layout 3 with two compressed extents PASS
Legacy full indexes PASS -Elegacy-compress; /shape.dat is Layout 1 with two compressed extents NOT RUN
64 KiB big pcluster PASS -C65536; superblock reports compr_cfgs big_pcluster; Layout 3 has one 1 MiB logical extent backed by 8192 bytes NOT RUN
Inline ztailpacking PASS -Eztailpacking; superblock reports ztailpacking; /inline.dat has on-disk size 0 and physical bytes 1352..1787 inside the metadata block NOT RUN
Fragments / packed inode PASS -Eall-fragments; superblock reports packed NID 42 plus fragments dedupe; /fragment.dat has on-disk size 0 NOT RUN
Partial reference PASS -Ededupe; mkfs reports Dedupe 409572 compressed data (delta 315374) and /b.dat reuses the physical extent at 8192..12288 NOT RUN
Extent metadata format MKFS-UNAVAILABLE erofs-utils v1.8.6 has no extent-map advise/structure or mkfs option for the newer extent metadata format; --max-extent-bytes only limits decompressed extent size NOT RUN

Host-side fsck.erofs --extract succeeded for the initially generated compact, full, big-pcluster, ztailpacking-option, and all-fragments images. This is fixture validation only, not a FreeBSD kernel feature pass.

Completed FreeBSD compact-index verification

The compact image used a deterministic 1 MiB file. dump.erofs reported:

Layout: 3
Ext 0: logical 0..639004, physical 4096..8192, physical length 4096
Ext 1: logical 639004..1048576, physical 8192..12288, physical length 4096

Guest operations completed as follows:

kldload_rc=0
md_attach_rc=0
mount_rc=0
stat_size=1048576
full_sha256=370eb0a8df86868c4842ca535ed64670f0277ea2ed47a703f089bbb13ee4ac52
expected_full_sha256=370eb0a8df86868c4842ca535ed64670f0277ea2ed47a703f089bbb13ee4ac52
cross_extent_offset=638972
cross_extent_length=128
cross_extent_sha256=941b6e3cb9a7384428d93ca248eb9630782538e04caba30dbfbe31baacca8f60
expected_cross_extent_sha256=941b6e3cb9a7384428d93ca248eb9630782538e04caba30dbfbe31baacca8f60

Result: compact full-file integrity and a read crossing the logical boundary immediately before the second compressed extent both pass.

First failure and dmesg

No KERNEL-FAIL occurred in this batch. The first incomplete command was:

dd if=/mnt/repo22-shape/shape.dat bs=1 skip=777777 count=8192 | sha256 -q

It was operator-terminated when the user requested immediate convergence. Byte-sized dd caused repeated page reads under QEMU TCG and was an inefficient manual command; it did not return a kernel error and is not classified as KERNEL-FAIL.

The guest was responsive after termination, and the mount and md device were cleaned up. The dmesg tail contained only successful mapping diagnostics such as:

erofs zread: nid=39 la=1044480 mapla=639004 llen=409572 pa=8192 plen=4096 flags=1 alg=0
erofs zread: nid=39 la=0 mapla=0 llen=639004 pa=4096 plen=4096 flags=1 alg=0

There was no new EINTEGRITY, decompression error, panic, trap, or hang message. The volume of unconditional erofs zread diagnostics should be reviewed separately as a style/logging issue.

TC disposition

TC area Status Result
TC084 compact LZ4 basic PASS Complete SHA256 and cross-extent boundary read match the source
TC088 pcluster configuration TEST-DOC Previous monotonic ratio/performance assertions were invalid; commands and pass criteria were corrected
TC090 64 KiB pcluster TEST-DOC Previous pipeline read from files redirected away from the pipe; deterministic cross-boundary command was corrected; kernel execution remains NOT RUN
TC091 ztailpacking TEST-DOC Enabling the option alone did not tail-pack the first 1 MiB target; the TC now requires dump.erofs proof of an inline extent; kernel execution remains NOT RUN
TC098 fragments TEST-DOC Previous TC incorrectly described fragments as an external device; it now tests the same-image packed inode; kernel execution remains NOT RUN
TC115 unsupported algorithm MKFS-UNAVAILABLE mkfs.erofs 1.8.6 only emits its supported algorithm IDs; a checksum-aware ABI patch fixture is required
TC116 truncated compressed data TEST-DOC Blind truncate -s -4096 was nondeterministic; the TC now truncates inside a located target extent; kernel execution remains NOT RUN

TC085-TC087, TC089, TC092-TC101 other than TC098 were read for dependencies but were not executed in this converged batch. Multi-device and chunk tests are independent follow-up work and are not implied by the packed-inode fragment fixture.

Conclusion

The completed kernel evidence establishes compact-index LZ4 full-read and compressed-extent-boundary correctness on the tested FreeBSD 15 guest. Legacy full indexes, big pclusters, inline ztailpacking, fragments, and partial references are confirmed as real erofs-utils 1.8.6 fixtures but remain explicitly NOT RUN in the FreeBSD kernel after the stop instruction. No kernel failure was observed.