Experiment formal installation acceptance run 02 - kmosoti/FabricO11y GitHub Wiki

Historical report imported 2026-10-10 from docs/experiments/formal/installation-acceptance-run-02.md. Original SHA-256: 2edb93c661e2b0b5913fbfecccf75ca5148f55138b4c7d69a1fa62fdbc31c87b. Measurements and outcomes retain their stated revisions. Links and local environment labels are normalized; $FABRIC_DATA is the mounted experiment drive. See evidence policy.

Unified-cgroup installation acceptance, run 02

Status: installation acceptance completed on 2026-10-10 UTC. The unmutated package passed all seventeen registered checks, and all three required negative-control VM runs rejected their named defects. This local QEMU measurement is not deployment qualification.

Package and environment

The isolated Debian 12 build used source snapshot 717fcca151487dbe1f510b6e99296d8caf18d749, rustc 1.98.0 and the unchanged GLIBC 2.34 ceiling. Package SHA-256 is ac71995b3c8b88cbb6f7dd05d9854e347b7a783caadc1b602f6590d6460f4a2f. Build and cleanup exited 0, unit f5d197e1facb4dc78d1384740c595f3e, with 3,617,841,152 bytes cgroup peak. The build receipt records removal of Podman payloads and host-owned scratch.

The QEMU TCG guest had two vCPUs, 6 GiB RAM and an 8 GiB virtual disk, Debian 13.7, systemd 257 as PID 1 and unified cgroup v2. The outer resource group enforced 20 GiB maximum and zero swap. Acceptance exited 0, unit bcc7714a7f464e7bae24f0919df7c86e, with 316.956 seconds harness elapsed and 5,843,525,632 bytes cgroup peak. QEMU exited and owned scratch was removed.

Commands and evidence

Both commands ran after python3 tools/resource_group.py --:

python3 -B tools/qualification/install/build-isolated.py --run-id readiness-debian12-03
python3 -B tools/qualification/install/run-qemu.py \
  --deb $FABRIC_DATA/results/installation-package-build/readiness-debian12-03/fabrico11y_0.1.0~alpha.1_amd64.deb \
  --source-commit 717fcca151487dbe1f510b6e99296d8caf18d749 \
  --run-id readiness-debian13-02 --memory-stressor parallel

Full build provenance and cleanup are in $FABRIC_DATA/results/installation-package-build/readiness-debian12-03/receipt.json. The VM's receipt.json, acceptance.txt and journals are in $FABRIC_DATA/results/installation-qemu/readiness-debian13-02/. The acceptance report has seventeen PASS results and fails=0 not_run=0.

Results and retained counterexamples

Account collision refusal, repeated installation, TLS, non-root identity, managed directories, kernel limits including memory.high, authorized and denied log collection, retained-Spool restart, remove and purge all passed.

The registered revision-2 parallel A12 fixture passed its resident positive control: 39,555,072 bytes peak below 134,217,728 bytes memory.high. The service hog reported oom-kill/9, peak 268,300,288 bytes under the same 268,435,456-byte hard cap; the slice hog reported oom-kill/9, peak 3,485,052,928 bytes under its unchanged 3,489,660,928-byte cap. Each pressure case recorded a kernel group OOM event. The task tree reached 128 tasks and logged five fork failures. Both services stayed active with unchanged restart counts, and delivery continued.

The earlier legacy-hierarchy run remains inconclusive because memory.high was unavailable. The first unified VM run remains failed: its serial tail hogs timed out below their hard caps. The A12 diagnosis preserves that stimulus counterexample; the new VM observes actual OOM outcomes with unchanged gates. The rejected Debian 13 build and the earlier Debian 12 build's cleanup failure remain in the readiness record.

All three required controls ran on this package and unified guest:

Mutation Required rejection Other observed failures Driver unit
root-user A6 A7, A10 3590d8f4f8b24bfa8b2c8a61a96615b4
no-collision-check A2a, A2b A3 d249734a0f5042589c150fa533dc384a
no-memory-max A8 None 1549f0766bf7405882d9952ef3a66e35

Each guest acceptance exited 1 with not_run=0; each driver and resource launcher exited 0 because its named rejection was confirmed. Results are under the same data-drive results/installation-qemu/ root in readiness-debian13-root-user-01, readiness-debian13-no-collision-check-01 and readiness-debian13-no-memory-max-01. Each directory retains the receipt, acceptance report, sources, logs and fabrico11y-mutated.deb; its cleanup-followup.json confirms QEMU exit and removal of owned scratch. Mutated package hashes are recorded in both receipts. Reboots, upgrades and physical power loss are outside this finite run.