Repository navigation
Fix update-validation probe timing across retries - #870
Conversation
rmcdaniel
left a comment
There was a problem hiding this comment.
Security source review at immutable head 5eddc262dea97b3c99f5188ba9577eb15c692a48: no finding.
The change moves one monotonic hrtime(true) origin before the existing bounded retry loop and reports elapsed nanoseconds after the terminal accepted, cached, or unchanged error response. It does not alter the retry admission rule, retry count/wait bounds, request bytes, idempotency key, authentication, response selection, runtime, or frozen reference behavior.
The focused test runs the actual extracted child program and the actual lockPressureOperationRetryDelay policy over loopback HTTP. It proves refused-attempt delay plus every backoff is included, identical bodies are replayed, the original accepted/cached receipt survives, and unrelated failures are not retried. The test is included in both the workflow path filter and the executed parity list. General's counterfactual old-helper result (two elapsed cases fail while two preservation controls pass), corrected 26/26 Node result, and existing 6-test/70-assertion PHP retry controls support the intended boundary.
This accepts the source correction. Normal hosted checks and the owning full published-PHP corpus follow-through remain required; this timing repair does not diagnose the historical approved-update HTTP 500.
|
Current main is integrated normally at Combined local checks pass: 108 Node tests, no failures/skips, covering fixture selection, retry/timing, native cache/image-pull boundaries, aggregate handling and child retries. Actionlint and the staged whitespace check pass. No Rust build ran as part of this workflow-only integration. Fresh hosted PR checks are automatic and pending, including Shared Server fixtures 40969563370. The earlier exact-head gates remain evidence for 5edd, not a claim that a9f is green. The old queue entry was removed on conflict; re-enter the normal queue after the current-head checks complete. Trusted-main native v2 seeding is verified in #871; record this new equivalent-input restore and actual timing before claiming a performance improvement. |
|
|
Current main #874 is integrated normally at The timing PHP/helper and regression-test blobs remain byte-identical to reviewed5edd. Combined focused checks pass 114 Node tests, no failures/skips, and actionlint/whitespace pass. Security independently confirms the helper/test byte identity and exact comparator argv. Current-head hosted checks are now complete: Shared run40978243986 is SUCCESS, and all57 PR checks are complete with no failures. It entered the normal protected merge queue at 2026-10-30 00:48:36 UTC, position1. Merge-group and main follow-through remain pending; no administrator bypass was used. The earlier a9f Shared run40969563370 completed43/43 and its other checks passed, then it entered the normal queue at23:40:28. The #874 base advance removed it on conflict; those green results are retained for a9f and are not proof this current head is green. The current c108 queue entry now follows the successful fresh qualification. The historical approved-update HTTP500 remains a separate unresolved scope in #825. Protected delivery: merged 6c1e63d at2026-10-30 01:14:27 UTC. Its normal merge-group Shared40982037136 and PHP40982037221 both succeed; no bypass. Normal main Shared40984638681/PHP40984638686/Sonar40984638635 are running on that exact commit. The separate historical500 disposition in825 remains open. |



The background update-validation request reset its timer on every lock-pressure retry, so an accepted or cached response reported only the last attempt. Measure elapsed time once with a monotonic clock across all attempts and backoff. Frozen timing bounds, retry policy and product runtime are unchanged.
Validation:
c108ed328de8360aa05589f01a66eed35c331977passes 114 focused Node tests, covering timing/retry, selection, cache/image-pull boundaries, aggregate handling and child retries. Actionlint passes. The earlier existing PHP retry-policy suite passes 6 tests / 70 assertions. The timer PHP and new regression file remain byte-identical to reviewed5eddc262after integrating main.5eddc262. Tuple, stock envelope and known-defect limits. That run had no retry notes; the focused real-HTTP controls prove retry timing.Fresh hosted checks on current combined head c108 are pending. Its old merge-queue entry was removed on the base conflict; return through the normal queue after current-head checks pass. Combined-source receipt. The trusted-main native v2 dependency cache is seeded; actual equivalent-input restore and timing evidence remain required before a performance claim.
Refs #825. This repairs probe evidence; the historical approved-update HTTP 500 remains uncorrelated.