[BUG] Dynamic build cache fixture omits newly declared helper inputs #26

Open
opened 2026-09-12 15:42:02 +02:00 by erikinkinen · 0 comments
Owner

Summary

The dynamic build cache host fixture omits a helper that the maintained builder now includes in its input fingerprint. This stops Integration CI before VM scenarios can run.

Reproduction

At Integration commit 27ca5c035c569b11cf44260ca7c2fb587082e17e, run bash tests/dynamic-build-cache.sh with the fixture's declared Bash, Python and fingerprint version-query tools available. CI run 1569 and one isolated local run using the original selected fixture/helper blobs both fail with exit 1. No guest or compiler artifact build is needed.

Expected and actual behavior

Expected: the fixture owns every explicitly declared builder input and reaches its existing cache reuse, source-change, dependency-record and helper invalidation assertions.

Actual: build-input-fingerprint.py raises FileNotFoundError for scripts/dynlink_compiler_paths.py inside the fixture's generated Integration tree. The maintained dynamic_artifact_builder_input_paths includes the new helper, while the fixture creates a separate handwritten list of helper stubs that omits it. The failure occurs before the cache assertions and before VM validation.

Environment and identity

  • Repository/revision: Integration 27ca5c035c569b11cf44260ca7c2fb587082e17e.
  • CI: push run 1569/API 9043, integration job 19446, observed terminal failure; Rust and Markdown jobs succeeded. PR run 1570 was waiting when observed.
  • Image/VM/firmware: none; this is a host fixture using an original byte-producing fake builder.
  • Local confirmation: six exact original fixture/helper blobs, Bash/Python and explicit Rust 1.93.0 fingerprint version-query selection; no compilation. The test remains bounded to 90 seconds hard / 30 seconds without progress.
  • Last known working revision: not established by this report.

Evidence and prior checks

Integration CI run 1569 contains the preceding dynamic-boot policy success, the exact missing-helper traceback and exit 1. The earlier all-zero Git revision failure belongs to a passing negative source-helper test and is unrelated.

An isolated original-source replay preserves the same exit 1. A candidate fixture correction copies only inputs enumerated by the maintained builder gateway, preserving every existing cache assertion. It passes against the original 27ca gateway/helper cohort and the current cache gateway candidate. Bash syntax and whitespace checks pass. These local checks do not establish fixed-head CI or VM success; publication and CI confirmation are pending.

Published correction: signed Integration 381bccd87c5632e9d1af8aa9d0aca295cbc00e1f in WIP PR #12. The final 32 warning-denied cache tests and existing shell fixture pass; every original fixture assertion is preserved. CI syntax and all 113 Markdown files pass. Original failing replays remain retained. Current-head CI, complete dependency closure and fresh image/guest acceptance remain open.

The same missing-helper failure is also observed in CI run 1571 at the preceding 4bb694279e4a83aad95d14780434340beb4c649c head, before VM execution; Rust and Markdown jobs pass.

Tracking

Related compiler-coordinate change: Integration#22. Separate cache selection/error-propagation work: Integration#24. Keep this fixture omission distinct from the host watchdog failure tracked by Integration#25.

## Summary The dynamic build cache host fixture omits a helper that the maintained builder now includes in its input fingerprint. This stops Integration CI before VM scenarios can run. ## Reproduction At Integration commit `27ca5c035c569b11cf44260ca7c2fb587082e17e`, run `bash tests/dynamic-build-cache.sh` with the fixture's declared Bash, Python and fingerprint version-query tools available. CI run 1569 and one isolated local run using the original selected fixture/helper blobs both fail with exit 1. No guest or compiler artifact build is needed. ## Expected and actual behavior Expected: the fixture owns every explicitly declared builder input and reaches its existing cache reuse, source-change, dependency-record and helper invalidation assertions. Actual: `build-input-fingerprint.py` raises `FileNotFoundError` for `scripts/dynlink_compiler_paths.py` inside the fixture's generated Integration tree. The maintained `dynamic_artifact_builder_input_paths` includes the new helper, while the fixture creates a separate handwritten list of helper stubs that omits it. The failure occurs before the cache assertions and before VM validation. ## Environment and identity - Repository/revision: Integration `27ca5c035c569b11cf44260ca7c2fb587082e17e`. - CI: push run 1569/API 9043, integration job 19446, observed terminal failure; Rust and Markdown jobs succeeded. PR run 1570 was waiting when observed. - Image/VM/firmware: none; this is a host fixture using an original byte-producing fake builder. - Local confirmation: six exact original fixture/helper blobs, Bash/Python and explicit Rust 1.93.0 fingerprint version-query selection; no compilation. The test remains bounded to 90 seconds hard / 30 seconds without progress. - Last known working revision: not established by this report. ## Evidence and prior checks [Integration CI run 1569](https://git.erikinkinen.fi/erix/integration/actions/runs/1569) contains the preceding dynamic-boot policy success, the exact missing-helper traceback and exit 1. The earlier all-zero Git revision failure belongs to a passing negative source-helper test and is unrelated. An isolated original-source replay preserves the same exit 1. A candidate fixture correction copies only inputs enumerated by the maintained builder gateway, preserving every existing cache assertion. It passes against the original 27ca gateway/helper cohort and the current cache gateway candidate. Bash syntax and whitespace checks pass. These local checks do not establish fixed-head CI or VM success; publication and CI confirmation are pending. Published correction: signed Integration `381bccd87c5632e9d1af8aa9d0aca295cbc00e1f` in [WIP PR #12](https://git.erikinkinen.fi/erix/integration/pulls/12). The final 32 warning-denied cache tests and existing shell fixture pass; every original fixture assertion is preserved. CI syntax and all 113 Markdown files pass. Original failing replays remain retained. Current-head CI, complete dependency closure and fresh image/guest acceptance remain open. The same missing-helper failure is also observed in [CI run 1571](https://git.erikinkinen.fi/erix/integration/actions/runs/1571) at the preceding `4bb694279e4a83aad95d14780434340beb4c649c` head, before VM execution; Rust and Markdown jobs pass. ## Tracking Related compiler-coordinate change: [Integration#22](https://git.erikinkinen.fi/erix/integration/issues/22). Separate cache selection/error-propagation work: [Integration#24](https://git.erikinkinen.fi/erix/integration/issues/24). Keep this fixture omission distinct from the host watchdog failure tracked by [Integration#25](https://git.erikinkinen.fi/erix/integration/issues/25).
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/integration#26
No description provided.