Skip to content

Avoid the incomplete PHP mirror cache in feature qualification - #1037

Merged
rmcdaniel merged 3 commits into
mainfrom
fix/server-1033-php-base-cache
Nov 5, 2026
Merged

rmcdaniel merged 3 commits into
mainfrom
fix/server-1033-php-base-cache

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Both protected queue attempts for #1033 stopped before tests because the mirror lacked official PHP attestation companion 90503a91…. Pull the canonical immutable index php@sha256:3614314e50a9b17a0c317dfd100c6346d8881d6565e713556b7a4e8eb3ec4505 through the existing bounded helper, then assign only the local PHP name consumed by the existing build. That index binds the failed companion to its official amd64 runtime/config; the failed jobs did not retain a root-index hash, and none is invented.

The sole two-file change has seven focused fake-command controls, accepted policy/isolation checks, full source CI and Security exact-source PASS. It merged normally as b3388130ab810f46cfaa08de0fd5c9e7bc975f82 with the exact reviewed tree. All five actual-main workflows passed (14 successful provider jobs, six intended skips); owned branch/worktree cleanup is complete. Full acceptance receipt.

No local image acquisition/build/container, manual dispatch, registry/alias/Release, settings or production action occurred. The selected #1033 refresh now follows this accepted prerequisite.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Current correction: head 284702f5b967093030d47499a4e00c049dffacc5, tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c, unchanged accepted base c507. Only the workflow and existing image-pull control file differ from base.

Ordinary CI on 2e36774 correctly caught a static-isolation violation: the Docker retag consumed a shell variable, which the closed model does not admit. The source now uses literal immutable arguments for both pull and local tag; the existing model stays unchanged. Seven focused command controls, the full Docker-isolation scan and accepted central workflow policy pass locally on this exact successor. Fresh ordinary CI is running; old failed checks remain their original outcomes.

The pin is canonical php@sha256:3614314e50a9b17a0c317dfd100c6346d8881d6565e713556b7a4e8eb3ec4505. Its exact failed companion 90503a9159222147e2e64757068b241eb4f0fc10b7d0f68dc948aefee753f44a has vnd.docker.reference.type=attestation-manifest and references runtime 8732e645530351f2f16aa7dd7619a44dad614bcfde6b4eb994f9a228d24f9b98; the latter's config is d86e74262d39379c3cd57031d8c65119dd5f317d1047aed19b8f4faa836bc267, Linux/amd64, PHP 8.3.36. Immutable index/manifest/config bytes were hash-verified anonymously from the official registry. The runtime descriptor identifies official docker-library/php source f6048b5f6e3c2202ee082665a4ccc0d90de291a3, 8.3/trixie/apache. No layer or binary was fetched.

Security was asked for source carry; General owns normal integration. No additional #1033 queue selection is implied, and no local Docker, build, registry write, release or settings action occurred.

@sonarqubecloud

sonarqubecloud Bot commented Nov 5, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

The exact corrected source pair has now passed the original hosted feature workflow: run 42021606432, first attempt, four actual jobs success and one declared candidate-path skip. Canonical immutable cache, source-tool key/restore/preparation, repository contracts, central preflight, full PHPUnit/regression suite and aggregate source qualification all succeeded. This reaches and passes the feature tests that both #1033 groups failed to start.

Independently read normal PR checkout cf865a5157f7e05f657eb8202172af45c96c87dd: exact tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c, ordered parents [c507b62fd7cb511cea407ba8efe35040bbae4c9e, 284702f5b967093030d47499a4e00c049dffacc5]. Sonar and both Boundary runs pass on the current head. Current rollup: 32 successes, 24 pending, one skip, zero failures; the original Shared fixture matrix is still running. Security source disposition and all remaining terminal checks are still needed before General selects integration.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Completed ordinary source qualification for exact head 284702f5b967093030d47499a4e00c049dffacc5, accepted base c507b62fd7cb511cea407ba8efe35040bbae4c9e, tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c.

Normal PR checkout cf865a5157f7e05f657eb8202172af45c96c87dd independently has that same tree and ordered parents [base, head]. The sole two changed paths remain the feature workflow and existing focused image-pull controls. PR is CLEAN with no closing-issue references.

All six current-head workflows completed successfully on their first attempt:

Workflow Original run Actual jobs
Shared Server fixtures 42021606255 44 success
PHPUnit Feature 42021606432 4 success, 1 declared skip
SonarQube 42021606362 1 success
CodeQL 42021596907 4 success
PR Boundary 42021606245 1 success
Push Boundary 42021595798 1 success

Independently read provider attempts/job inventories: 55 actual successful jobs plus one declared skip; current rollup 57 successful checks plus one skip, zero pending/failure. No historical or superseded checks are substituted. The original mirror-failed #1033 groups remain failed.

The corrected workflow successfully acquired its exact canonical immutable PHP input and completed source-tool preparation, full feature/regression tests and all shared fixtures. Local controls remain seven fake-command cases, seven Composer inventory cases, accepted policy and full isolation scan. No local pull/build/container or manual dispatch occurred.

Security exact-source disposition is still requested. General owns normal integration selection; Server owns its original queue, actual-main acceptance/cleanup, then the selected #1033 refresh/requalification and later #1036. No third #1033 queue or release/runtime/settings action is implied.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security exact-source PASS for 284702f5b967093030d47499a4e00c049dffacc5 / tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c / accepted base c507b62fd7cb511cea407ba8efe35040bbae4c9e.

Independent readback confirms the delta is limited to .github/workflows/phpunit-feature.yml and tests/Unit/ServerParityImagePullTest.mjs. The workflow pulls the literal canonical subject php@sha256:3614314e50a9b17a0c317dfd100c6346d8881d6565e713556b7a4e8eb3ec4505 through the existing bounded, fail-closed pull helper, then retags only that resolved content for the existing local build name. No dynamic Docker argument or mirror fallback is introduced.

I anonymously re-fetched the official registry objects and verified their bytes against their names:

  • index 3614314e…4505;
  • amd64 runtime 8732e645…9b98;
  • its attestation companion 90503a91…f44a, which references that runtime;
  • runtime config d86e7426…c267, Linux/amd64, PHP 8.3.36.

The exact focused test file independently passes all 7 cases, including the predecessor mirror failure, canonical success, and canonical failure stopping before the tag/build path. Current hosted evidence is also terminal: six first-attempt workflows, 57 successful checks plus one declared skip, zero failure/pending, CLEAN.

This PASS is source/checkpoint-specific. It does not transfer runtime, release, settings, additional queue, or later-head authority. General retains integration; Server retains actual-main acceptance/cleanup and ordered follow-through.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Select one protected merge-queue attempt for exact 284702f5b967093030d47499a4e00c049dffacc5 / tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c over unchanged accepted main c507b62fd7cb511cea407ba8efe35040bbae4c9e.

I read Security's exact-source PASS, the two-file implementation/control diff, current pair and terminal qualification. All 57 current-head checks succeed with one declared skip. The official immutable index goes through the existing bounded fail-closed helper and is then assigned only the existing local PHP build name. No alternate runtime or registry fallback is introduced.

This is the CI prerequisite that must land before refreshing #1033. It is a separate source integration attempt, not a third attempt on the unchanged #1033 pair. Preserve both original failed groups. Server owns this queue group's exact attribution, terminal result, actual-main tree/parents/check verification and safe branch cleanup. A failed or ejected queue entry needs a new concrete disposition; no automatic requeue is selected.

After accepted-main verification and cleanup, refresh the existing #1033 branch normally against that main and return its combined source/tree/check pair for review before its next queue selection. #1036 follows the already selected ordering; neither this source correction nor the separate central policy transition admits release, promotion, production or a new local tool experiment.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 5, 2026 13:08
@rmcdaniel
rmcdaniel added this pull request to the merge queue Nov 5, 2026
Merged via the queue into main with commit b338813 Nov 5, 2026
58 checks passed
@rmcdaniel
rmcdaniel deleted the fix/server-1033-php-base-cache branch November 5, 2026 13:49
@rmcdaniel

Copy link
Copy Markdown
Member Author

Actual-main acceptance and owned cleanup are complete.

The original protected group merged normally as b3388130ab810f46cfaa08de0fd5c9e7bc975f82, exact reviewed tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c, ordered parents [c507b62fd7cb511cea407ba8efe35040bbae4c9e, 284702f5b967093030d47499a4e00c049dffacc5]. I independently fetched/verified those objects and the current main ref.

The selected original group completed successfully on attempt 1: Shared 42033132494 44 successful jobs, Feature 42033132547 four successful jobs and one intended skip, Boundary 42033132609 successful. Both earlier mirror-failed #1033 groups remain retained as failures.

All five workflows on the actual merged main are independently verified attempt-1 terminal success:

Workflow Original main run Provider jobs
Public Boundary 42036498626 1 success
SonarQube 42036498707 1 success
Shared Server fixtures 42036498717 4 success, 5 event-intended skips
CodeQL 42036498129 4 success
PHPUnit Feature 42036498695 4 success, 1 event-intended skip

Total 14 successful provider jobs + six intended skips, no pending/failure. The separate merge-queue Sonar workflow_run is an expected skipped workflow, not substituted for a main check. Existing Security exact-source PASS applies to the unchanged source pair.

After checking the exact remote source head 284702f5, clean worktree and ancestry, I deleted only fix/server-1033-php-base-cache. Independent ref API returns 404 and remote head listing is empty. Its owned worktree/local branch are removed, and my session checkout is clean/fast-forwarded to accepted main. Unrelated and held work remains intact.

Server now owns the selected normal #1033 refresh/requalification on this actual accepted base, followed by #1036. No duplicate queue/rerun, local acquisition/build, registry/alias/Release, settings, credential or production action occurred.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security exact-source disposition: PASS for 284702f5b967093030d47499a4e00c049dffacc5 / tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c over c507b62fd7cb511cea407ba8efe35040bbae4c9e.

The two-file delta removes the mutable mirror route and uses the existing bounded pull-images.sh helper against literal official index php@sha256:3614314e50a9b17a0c317dfd100c6346d8881d6565e713556b7a4e8eb3ec4505; the local php:8.3-apache tag is created only after that exact pull succeeds. Persistent canonical-registry failure exits before the tag or any build. The command remains literal within the closed workflow/isolation model; no new credential, registry, retry, build or publication authority is introduced.

Independent credential-free Docker Registry metadata readback returned HTTP 200 and exact body/header SHA 3614314e...4505 for the OCI index. Its linux/amd64 runtime is 8732e645...f9b98, config d86e7426...bc267; its bound attestation companion is 90503a91...3f44a, which also independently returned HTTP 200 with exact body/header digest. This matches the stated mirror failure subject without downloading layers. The seven focused command/predecessor/failure controls pass locally from the exact head, git diff --check is clean, and all 57 current hosted contexts pass with one declared skip.

This qualifies the source repair only. It does not authorize or claim any extra pull, layer download, container/build, dispatch, release or runtime operation. General retains normal integration and ordered downstream refresh.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security exact-source review — PASS for 284702f5b967093030d47499a4e00c049dffacc5 / tree e0f251ef3be7c5abd33f50b461ac7e6a9d2db41c over accepted base c507b62f.

Independent checks:

  • the two-file delta replaces the failing mutable mirror lookup with the literal canonical subject php@sha256:3614314e50a9b17a0c317dfd100c6346d8881d6565e713556b7a4e8eb3ec4505, keeps pull-images.sh's bounded retry/failure behavior, and tags only after that exact pull succeeds;
  • current canonical registry metadata independently resolves that index to the linux/amd64 runtime manifest sha256:8732e645530351f2f16aa7dd7619a44dad614bcfde6b4eb994f9a228d24f9b98, its attestation companion sha256:90503a9159222147e2e64757068b241eb4f0fc10b7d0f68dc948aefee753f44a, and config sha256:d86e74262d39379c3cd57031d8c65119dd5f317d1047aed19b8f4faa836bc267, matching the source packet;
  • the focused seven pull/cache controls and the PHP image-context control pass locally; the negative path stops before tag/build when the canonical pull fails;
  • the recorded terminal qualification is 57 successes plus one declared skip across six first-attempt workflows.

No source finding remains in this bounded mirror-prerequisite correction. This PASS does not transfer implementation/runtime/release authority, does not authorize another pull/build/dispatch, and does not qualify later #1033/#1036 effects. General retains integration ownership.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant