docs(plans): record wonder-app-vd03 live-gate PASS — leak closed in production (8.3x metadata collapse)

This commit is contained in:
Joseph Doherty
2026-08-12 18:10:02 -04:00
parent 20f2ae05ca
commit 4a026d256e
2 changed files with 14 additions and 2 deletions
@@ -577,7 +577,19 @@ Executed on the docker rig, site-a node A (`scadabridge-site-a-a`, aarch64, stan
| `NativeHeapMemoryBlock` growth | +861 | **0** | | `NativeHeapMemoryBlock` growth | +861 | **0** |
| `Script<Object>` | 3 → 6 | 4 → 7 (proves compiles really ran) | | `Script<Object>` | 3 → 6 | 4 → 7 (proves compiles really ran) |
Functional: cluster converged under the bootstrap guard, Tick script executing, notifications flowing site→central, no steady-state errors. Driver script body restored afterwards. **Remaining leg: wonder-app-vd03** — same procedure after the fix is deployed there (operator decision); tooling notes in the table above apply (script bodies must change; `E:\ApiInstall\_tools\diag\`). Functional: cluster converged under the bootstrap guard, Tick script executing, notifications flowing site→central, no steady-state errors. Driver script body restored afterwards.
### Task 9 result — wonder-app-vd03 leg PASS (2026-08-12, deployed `20f2ae05` at 17:58, ~58 s downtime, 0 migrations)
Measured as a fixed-compile-count A/B (both nodes compile an identical startup set across builds — Site 21 / Central 6 `Script<Object>` — so no forced compiles were needed on the live box):
| | `5a781c70` | `20f2ae05` |
|---|---|---|
| Site metadata triple / `NativeHeapMemoryBlock` | 6,640 / 6,593 | **800 / 753** (8.3× / 8.8× down) |
| Central metadata triple / `NativeHeapMemoryBlock` | 2,699 / 2,681 | **849 / 831** (3.2× down) |
| Site / Central working set | 2,814 / 1,374 MB | 612 / 663 MB (post-fix read at ~5 min uptime — not uptime-matched; the metadata counts are the controlled result) |
`CachingScriptMetadataResolver` shows exactly 1 instance per process in the gcdump — active in production. Calibration note: the steady-state residual is a **fixed** cost of roughly one shared closure set + statics (~800 for 21 scripts ≈ 38/script amortized), not the per-compile ≤~10 growth figure — the growth figure applies to *additional* compiles (rig-verified at +2/compile), the fixed cost to the startup set. Follow-up lead (not closed by this): re-test the complex `AddTemplateScript` OOM on wonder — that path was shown twice not to compile scripts, but the OOM signature (large allocation failing with GBs free) matches the native-heap state this leak produced, and the test is now cheap.
## Out of scope / follow-ups ## Out of scope / follow-ups
@@ -68,7 +68,7 @@
}, },
{ {
"id": 9, "id": 9,
"subject": "Task 9 (operator-gated): Live compile-count-keyed gcdump gate \u2014 rig leg PASS; wonder leg pending deploy", "subject": "Task 9 (operator-gated): Live compile-count-keyed gcdump gate \u2014 PASS on rig AND wonder-app-vd03",
"status": "completed", "status": "completed",
"blockedBy": [ "blockedBy": [
8 8