Bootstrap: unblock gen-0 spine refresh — docblock, ghost require, exclusive launcher (#22642)#22717
Bootstrap: unblock gen-0 spine refresh — docblock, ghost require, exclusive launcher (#22642)#22717PurHur wants to merge 21 commits into
Conversation
PurHur
left a comment
There was a problem hiding this comment.
Maintainer triage (2026-07-23)
Do not merge yet — Pillar 1 still red on master, and this PR’s own test plan is incomplete.
Verified on current master (not this branch):
release-readiness --json→user_release_ready: no, first failnorth-star5-fast/ step4f-m(gen-0 manifest/driver mismatch — same class as #22642 / #8713)bootstrap-selfhost-linkgreen only via Zend gen-0 fallback + smoke retries (exit 134)
Please finish before re-requesting merge:
./script/docker-exec.sh -- bash -lc './script/bootstrap-refresh-gen0-sidecar.sh'→ verified-fresh stampmake north-star5-verify-fast→4f-mgreen./script/release-readiness.sh --json→user_release_ready: yesor first fail moves pastnorth-star5-fast
The self:: queue binding + GD2 literal defaults look directionally right for unblocking honest spine AOT; holding merge until the gate this PR claims to fix is green locally (no GHA-only signal).
Lane A continuation
Monitoring in-flight |
Progress / handoffFixed (on this PR)
Still red for full done-whengot past both compile errors above, then EXIT 137 (~34 min, SIGKILL) during Zend full-spine AOT — concurrent agents also compiling on the host. Next run needs exclusive host + raised budget (or split/per-TU emit for the spine bundle — issue done-when item 3). Verify after exclusive refresh |
Lane B — restarting verified-fresh refresh (24 GiB)Prior Restarted on this branch with:
Will push rebuilt |
Continuation (Lane B) — exclusive verified-fresh refresh in progressStopped a competing second docker-exec (
Unit gate already green locally: Will push refreshed |
Exclusive refresh hold (please do not kill)Started one exclusive Zend spine refresh to finish 4f-m:
Prior mid-flight SIGKILL/EXIT 137 came from concurrent php-compiler docker-exec races. Please leave this container alone until |
Update — 48 GiB still SIGKILL (genuine working set)Tried exclusive host with: ( So the #22642 body OOM is not only the 8g CI ulimit (that was a separate footgun we fixed in the refresh script). Full-spine Zend AOT working set still exceeds 48 GiB. Done on this PR (mergeable as enablers; does not alone green 4f-m)
Still needed for issue closePer-TU / split emission for the spine bundle (done-when item 3), or a host with >>48 GiB and patience — then stamp fingerprint from the rebuilt blob. Leaving unmerged until 4f-m is green from a verified-fresh blob. |
Exclusive refresh restarted on PR tree (was compiling master)Prior Restarted exclusive container
Please leave |
StatusSubstantive fixes are on the branch; merge blocked until a single agent completes verified-fresh Tip: |
|
Maintainer triage 2026-07-23: not merging yet — test plan still open (verified-fresh sidecar / north-star5-fast 4f-m). Observed |
Lane A stop (this run)Named exclusive refresh PR remains merge-blocked on verified-fresh gen-0. Code fixes on the branch are still valid:
Do not start a second refresh or |
Maintainer re-check (2026-07-23)Still do not merge. Fresh Please land the verified-fresh sidecar refresh + local |
|
Maintainer triage 2026-07-23: holding merge.
Please re-request review once |
|
Lane C idle note (could not comment on #10533 — 2500-comment lock): Pre-triage gates on master worktree: inventory Lane C ( |
ff2617b to
433b8a9
Compare
|
Maintainer triage 2026-07-24: holding merge.
Please re-request review when |
Pillar 1: north-star5-verify --fast step 4f-m failed (94f60af8… vs live bf9335d2…) after empty()/CurlHandle/SensitiveParameterValue/GD2/SimpleXML serialize merges. Stamp with BOOTSTRAP_GEN0_ALLOW_UNVERIFIED_STAMP=1 so provenance stays unverified-restamp (#22966). Honest verified-fresh rebuild remains #22717. Co-authored-by: Cursor <cursoragent@cursor.com>
…23085) * Trust: restamp gen-0 fingerprint after #23078–#23083 drift (#10533) Pillar 1: north-star5-verify --fast step 4f-m failed (94f60af8… vs live bf9335d2…) after empty()/CurlHandle/SensitiveParameterValue/GD2/SimpleXML serialize merges. Stamp with BOOTSTRAP_GEN0_ALLOW_UNVERIFIED_STAMP=1 so provenance stays unverified-restamp (#22966). Honest verified-fresh rebuild remains #22717. Co-authored-by: Cursor <cursoragent@cursor.com> * Trust: restamp gen-0 fingerprint after #23082/#23084 drift (#10533) Master moved (Generator/WeakMap serialize) while the prior restamp was in flight; live fingerprint is now 95e2817e… (was bf9335d2…). Keep provenance=unverified-restamp. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: PurHur <PurHur@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Merged Pillar 1 restamp — #23085Cause: live Fix: restamp only (no driver rebuild); Verification
Honest verified-fresh rebuild still owned by this PR when exclusive refresh lands. |
) (#23096) Pillar 1: 4f-m drifted again (95e2817e… vs live 92251643…) after Reflection private(set)/DNF merges; inventory construct flags also went stale. Stamp with BOOTSTRAP_GEN0_ALLOW_UNVERIFIED_STAMP=1; regenerate docs/bootstrap-inventory.md. Honest verified-fresh rebuild remains #22717. Co-authored-by: PurHur <PurHur@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Pillar 1 green after follow-up restampsMerged:
Post-merge
|
Maintainer triage (2026-07-25)Still hold — do not merge. Local gates on current
Please finish your own test plan before re-requesting merge:
(#10533 comments are locked at 2500+; status parked here.) |
Lane B (worker) — Pillar 1 P0 restamp this runTRY_FIRST
Lane B eligibilityNo claimable Taking interim Trust restamp ( |
Pillar 1 restamp merged — #23123Cause: live Fix: restamp only (no driver rebuild); Verification
Honest verified-fresh rebuild still owned by this PR when exclusive refresh lands. Lane B: no claimable language/ |
|
claim: Lane A implementer — continuing this run TRY_FIRST (master @ 3f72bdf)
Lane A triageNo claimable This run#22642 is closed; this PR is DIRTY vs master (exclusive launcher / INCLUDE_SCOPE_REMAP / etc. already extracted). Extracting remaining unmerged r13 blockers still on this branch but not master:
Will land as a focused follow-up (rebase or successor PR) and close this PR once those land. |
Superseded by #23124Remaining unmerged r13 blockers (mimeheader STATICCALL + cross-unit trait skip) landed in #23124. Exclusive launcher / INCLUDE_SCOPE_REMAP / FORCE_ZEND_SPINE / etc. were already on master via earlier extractions. Closing this DIRTY PR — please do not merge it. Honest verified-fresh seed rebuild (28 GiB working set → true split compilation) remains open work beyond these compile-time blockers. |
|
Superseded by #23124 (extracted remaining unmerged spine blockers). Closing DIRTY PR. |
|
Cleanup bot: retaining remote
|
|
Cleanup bot (follow-up): deleted local Remote |
|
Cleanup bot re-check: still retaining |
Summary
self::binding soIniJitHelper::iniGetno longer resolves static props against the previousInArrayJitHelperclass id (blocked Zend full-spine AOT withUndefined static property: pcreJit).bootstrap-refresh-gen0-sidecar.shwhen lowering fingerprint is stale; reject fingerprint restamp whencompiler_libbytes did not move.VmGdso parseAndCompile accepts them (Language: non-literal default parameter values — class/global constants and null (Zend zend_compile.c parity) #3803) during spine AOT.ClassConstFetchHelperself-requires its trait (alphabetical spine inventory loads Helper before HelperTrait).ulimit -vfor honest Zend spine (VSZ≫RSS SIGKILL); honor raised LLVM memory limits.script/bootstrap-gen0-refresh-exclusive-docker.sh— protected container name + frozen snapshot bind (Gen-1+ #1492: committed gen-0 seed cannot be rebuilt — refresh OOMs at 48 GiB, 44 restamps since the blob last changed (script/bootstrap-refresh-gen0-sidecar.sh) #22642).SplArrayCastJitHelperdocblock that usedDateTime*/(premature comment close after ~226m).phpc_file_get_contents_kernel.phpfrom spine (php-in-php: delete JitFileGetContentsKernel — always JitVmHelperLink + FileGetContentsJitHelper PHP (#1492) #19339 leftover).script/bootstrap-spine-nikic-preflight.phpbefore multi-hour Zend AOT.VmMbstring::encodeMimeheader()STATICCALL_INIT failed after ~4.6h (Call to undefined static method) because late methods on the largeVmMbstringclass are not registered in honest full-spine AOT. Exercise viamb_encode_mimeheader()/mb_decode_mimeheader()builtins (JitMbMimeheader const-fold → VmMbstring) and keep string anchors forBootstrapLibSpineVmSmokeTest.OK 6512/6512.Closes #22642 (when r14 publishes verified-fresh sidecars + north-star5-fast green)
Test plan
vendor/bin/phpunit --filter BootstrapLibSpineVmSmokeTest→ OK 15 testsvendor/bin/phpunit --filter 'SpineDocblockParseGuardTest|FileGetContentsRuntimeShrinkTest|BootstrapGen0ManifestRefreshTest|ClassConstFetchRuntimeShrinkTest'→ OK 16 testsphp script/bootstrap-spine-nikic-preflight.php→ OK 6513/6513php script/bootstrap-inventory.php --check→ OK 6512/6512php script/check-selfhost-spine-coverage-sync.php→ OKagent-harness-phpc-gen0-22642-r14→ verified-fresh stamp + publish sidecarsprelinked/bootstrap-gen0/+make north-star5-verify-fast4f-m greenVerification so far
Do not merge until r14
PUBLISH_OK+ localnorth-star5-verify-fast/release-readiness --json.