[BUG] Installer authority change leaves the bootstrap audit baseline stale #6

Closed
opened 2026-09-19 23:23:00 +02:00 by erikinkinen · 0 comments
Owner

Summary

The explicit installer-rights change leaves Rootd's reviewed production bootstrap baseline stale. Both original CI runs stop at the semantic baseline gate after the Rust tests and production boundary check pass.

Reproduction

At commit 87a9f38bfbcf18828a9c03b0c229696aa997d970, run python3 scripts/bootstrap_baseline.py --target-dir target/production-boundary after preparing the pinned dependencies and native target. Original CI 1035 and 1036 both reproduce the failure.

Expected and actual behavior

The baseline should describe the reviewed current production source. The checker correctly exits 1: active production Rust code lines changed from 15,256 to 15,247. The stale audit artifact prevents the remaining semantic gates from running. Compiler identity and binary size also differ in CI; the checker already reports cross-compiler size differences separately and does not treat them as comparable measurements.

Environment and identity

  • Rootd: 87a9f38bfbcf18828a9c03b0c229696aa997d970.
  • Configuration: rootd-runtime-release-image, x86_64-unknown-none.
  • CI compiler: Rust 1.93.1, commit 01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf, LLVM 21.1.8.
  • Recorded baseline compiler: Rust 1.97.1, commit 8bab26f4f68e0e26f0bb7960be334d5b520ea452, LLVM 22.1.6.
  • No guest execution or new authority grant is involved in this failure.

Evidence and prior checks

Original CI 1035 and original CI 1036 retain the failure. All four complete job logs are retained, totaling 260,616 bytes with no warning candidates. Both measured baselines have the same three differing fields: compiler, release binary size, and production code-line count. Other semantic fields agree. Review a fresh measurement and the source reduction before updating the baseline; preserve all existing checks. The prior local Rust matrix did not exercise these additional semantic gates.

Tracking

Related: Rootd audit, grant authority design, and phase completion. Acceptance requires reviewed baseline changes, all Rootd Python and semantic checks, and original CI on the corrected source. Do not rerun the failed source unchanged.

Verified grant-rights checkpoint — 20 September 2026:

Signed commit 87a9f38bfbcf18828a9c03b0c229696aa997d970 requires exact GRANT-only final installer receipts and selects the original shared dependency graph. Four strict 428/429-unit configurations, four native builds with the maintained linker layout, host/native Clippy, formatting and private rustdoc pass without warnings. Original CI 1037/1038 passes from four complete hashed logs (222,588 bytes), with zero warning candidates. Corrective audit commit 0890d3285d1e9efe5d701043f930e172971a0354 updates the independently reviewed bootstrap baseline to 15,247 active production lines and 265,872 linked bytes under Rust 1.97.1. All 64 Python tests and production, baseline, threat, phase and ownership audits pass. Authority inventory, direct syscalls, dependency names and eight unsafe sites are unchanged. Bug 6 retains original 1035/1036 failures.

Both maintained isolated native scenarios pass on their first attempts under the unchanged 60-second scenario limits, with no build warnings and empty QEMU stderr. Lifetime now exercises 27 ordinary CPL3 grant-right controls and requires INSTALL_GRANT_RIGHTS_OK before its existing cleanup assertions. Its 2,025-byte serial stream has SHA256 6c685f1ceaf9080bf0bec628a4fac512bf9049d0fbcfe2b3737666adf414ca3a; owned invocation retains 1,587 bytes. Normal stripping exactly matches both packaged kernels to retained original artifacts. All fifteen selected original source signatures and clean trees verify. These minimal native scenarios establish neither full service-image acceptance nor a guest build.

Full coordinated consumer acceptance remains open under Kernel design 19 and phase completion.

## Summary The explicit installer-rights change leaves Rootd's reviewed production bootstrap baseline stale. Both original CI runs stop at the semantic baseline gate after the Rust tests and production boundary check pass. ## Reproduction At commit `87a9f38bfbcf18828a9c03b0c229696aa997d970`, run `python3 scripts/bootstrap_baseline.py --target-dir target/production-boundary` after preparing the pinned dependencies and native target. Original CI 1035 and 1036 both reproduce the failure. ## Expected and actual behavior The baseline should describe the reviewed current production source. The checker correctly exits 1: active production Rust code lines changed from 15,256 to 15,247. The stale audit artifact prevents the remaining semantic gates from running. Compiler identity and binary size also differ in CI; the checker already reports cross-compiler size differences separately and does not treat them as comparable measurements. ## Environment and identity - Rootd: `87a9f38bfbcf18828a9c03b0c229696aa997d970`. - Configuration: `rootd-runtime-release-image`, `x86_64-unknown-none`. - CI compiler: Rust 1.93.1, commit `01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf`, LLVM 21.1.8. - Recorded baseline compiler: Rust 1.97.1, commit `8bab26f4f68e0e26f0bb7960be334d5b520ea452`, LLVM 22.1.6. - No guest execution or new authority grant is involved in this failure. ## Evidence and prior checks [Original CI 1035](https://git.erikinkinen.fi/erix/rootd/actions/runs/1035) and [original CI 1036](https://git.erikinkinen.fi/erix/rootd/actions/runs/1036) retain the failure. All four complete job logs are retained, totaling 260,616 bytes with no warning candidates. Both measured baselines have the same three differing fields: compiler, release binary size, and production code-line count. Other semantic fields agree. Review a fresh measurement and the source reduction before updating the baseline; preserve all existing checks. The prior local Rust matrix did not exercise these additional semantic gates. ## Tracking Related: [Rootd audit](https://git.erikinkinen.fi/erix/rootd/issues/1), [grant authority design](https://git.erikinkinen.fi/erix/kernel/issues/19), and [phase completion](https://git.erikinkinen.fi/erix/integration/issues/65). Acceptance requires reviewed baseline changes, all Rootd Python and semantic checks, and original CI on the corrected source. Do not rerun the failed source unchanged. Verified grant-rights checkpoint — 20 September 2026: Signed commit [87a9f38bfbcf18828a9c03b0c229696aa997d970](https://git.erikinkinen.fi/erix/rootd/commit/87a9f38bfbcf18828a9c03b0c229696aa997d970) requires exact GRANT-only final installer receipts and selects the original shared dependency graph. Four strict 428/429-unit configurations, four native builds with the maintained linker layout, host/native Clippy, formatting and private rustdoc pass without warnings. Original CI 1037/1038 passes from four complete hashed logs (222,588 bytes), with zero warning candidates. Corrective audit commit [0890d3285d1e9efe5d701043f930e172971a0354](https://git.erikinkinen.fi/erix/rootd/commit/0890d3285d1e9efe5d701043f930e172971a0354) updates the independently reviewed bootstrap baseline to 15,247 active production lines and 265,872 linked bytes under Rust 1.97.1. All 64 Python tests and production, baseline, threat, phase and ownership audits pass. Authority inventory, direct syscalls, dependency names and eight unsafe sites are unchanged. [Bug 6](https://git.erikinkinen.fi/erix/rootd/issues/6) retains original 1035/1036 failures. Both maintained isolated native scenarios pass on their first attempts under the unchanged 60-second scenario limits, with no build warnings and empty QEMU stderr. Lifetime now exercises 27 ordinary CPL3 grant-right controls and requires INSTALL_GRANT_RIGHTS_OK before its existing cleanup assertions. Its 2,025-byte serial stream has SHA256 `6c685f1ceaf9080bf0bec628a4fac512bf9049d0fbcfe2b3737666adf414ca3a`; owned invocation retains 1,587 bytes. Normal stripping exactly matches both packaged kernels to retained original artifacts. All fifteen selected original source signatures and clean trees verify. These minimal native scenarios establish neither full service-image acceptance nor a guest build. Full coordinated consumer acceptance remains open under [Kernel design 19](https://git.erikinkinen.fi/erix/kernel/issues/19) and [phase completion](https://git.erikinkinen.fi/erix/integration/issues/65).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
erix/rootd#6
No description provided.