# 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: ```text 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: ```text 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: ```sh 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: ```text 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.