fix(sync): damp metadata-pending VM reconcile scans#1958
Conversation
|
Live validation refinement (2026-07-24) The first local soak correctly exposed that the original one-minute first backoff was too short on a loaded node: a traversal across the subscribed CG set outlived the timer, and the cursor retried the first historical metadata-pending assets before any Follow-up commit
Validation on the isolated PR branch:
The new assertion pins a first retry horizon that survives a multi-minute loaded traversal. Live node validation of the updated commit is next; the PR remains draft until the natural cursor revisit produces cache-hit evidence without hiding new graph or topology evidence. |
Follow-up: loaded-node retry historyLive validation of the previous 10-minute cap showed it did not survive a full subscribed-CG traversal: the local edge reached 389 metadata-pending rows across 9 CGs, 326 already timer-eligible again, with retry histories up to 5. Logs continued to perform exact fetches and re-defer unchanged assets, with no negative-cache hits. Commit Validation:
Live gate remains open: this PR stays draft until the new commit produces real |
|
Live testnet-edge validation update (local validation layer only; no canary/core deployment):
The branch is now updated to aa30c25. This PR remains draft and must not be merged until refreshed CI/review and the offline receiver completeness checkpoint can be resumed. |
|
One-hour local testnet-edge soak completed successfully on the combined local validation artifact f99132880c85c606b41039aa0cc2989d5fc963e0 (this is not a canary/core deployment).\n\nFinal gate evidence:\n- uptime at gate: 3,625,975 ms\n- exact running commit: f9913288\n- 10 connected peers; relay connected\n- admission rejectedTotal: 0\n- all 4 configured RPCs healthy; no RPC exhaustion\n- final 11-minute window: 43 VM negative-cache reuses, 80 exact-fetch log entries, 46 queued backpressure events, 0 backpressure rejections, 0 runtime errors\n- Windows and SPARQL CI checks are green\n\nDistributed completeness remains explicitly unresolved because the second edge receiver is intentionally offline at its preserved SWM 391/400 and VM 390/400 checkpoint. No merge or core rollout is authorized. |
What
Why
A node with historical VM content but missing transaction provenance repeatedly re-ran the same expensive metadata verification for every sweep slice. On the local testnet edge this produced hundreds of identical cannot-repair-without-provenance attempts even though neither local evidence nor connected recovery peers had changed.
The cache remains fail-open: a local graph generation change, recovery-peer topology change, or bounded expiry causes an authoritative retry. It never synthesizes provenance and never promotes unverifiable VM state.
Validation
pnpm --filter @origintrail-official/dkg-agent buildLive local-node validation will be added before this draft is marked ready. No core rollout is authorized by this PR.