Repository navigation
Recover update validation under database lock pressure - #730
Conversation
|
|
Candidate 430a7c9, tree cecc7146332cd88bac3b83656705616fa6be0045. Four changed files match the tested export; the dependency lock remains Core2.11.4 / Laravel13.34.0, running on PHP8.3.36. Actual local qualification is complete:
Hosted source checks currently show 15 success, 1 skip, 2 failed performance checks. Both failures come from 40081057410: the original polling-cache smoke and its required aggregate. The smoke completed1000/1000 synthetic workflows, had zero worker/control-plane errors and zero final cache keys, but Current-main comparison 40082628387 runs the unchanged workload at exact main960aa305. The original failure remains failed and the thresholds remain unchanged. This PR stays draft pending the diagnosis/qualification and exact-head Security review. Fixed published-PHP acceptance with maintenance running remains #726 follow-through; native/shared/frozen actors are unchanged. |
|
The current-main comparison 40082628387 is terminal success at exact960aa305, including the same polling-cache smoke and required aggregate. The candidate's changed runtime paths are validation claim/reclaim/timeout and validation-poll refusal; the original failed smoke's response/component cause remains unclassified. I started one controlled rerun of the failed performance jobs on unchanged candidate430a7c9dd after that baseline passed. The original attempt1 remains failed, with one readiness503/83 probes,1000/1000 completed synthetic workflows and zero final cache keys. No workload, resource envelope, timeout or acceptance threshold changed. Qualification and review remain pending; a later passing attempt will not explain the missing original readiness detail. |
|
Security class: R2. Ready for exact-head review of 430a7c9, tree cecc7146332cd88bac3b83656705616fa6be0045, based on current main 960aa30. This PR is the sole constituent; no native/shared/frozen source changes are included. Changed files:
Trust/protocol delta: externally reachable validation polls gain the same Counterfactuals and local qualification: six held-lock cases fail on unchanged main. Final SQLite20 tests/234 assertions, PostgreSQL17.11 and MySQL8.0.46 each20/220 across the main and negative-control invocations; no skips/warnings/deprecations. An approval committed while timeout waits is preserved; an unrelated missing table stays a500 after one transaction. Pint all4 files and diff checks pass. Locked Core2.11.4/Laravel13.34.0. Full source receipt. Terminal hosted state on this exact head: 17 successful checks, one intentionally skipped prepared-candidate job. PHPUnit/feature aggregate, MySQL HTTP topology, contracts/policy/public boundary, CodeQL, Sonar and both performance jobs/aggregate pass. Direct Sonar review: gateOK, zero unresolved findings, zero security hotspots,0.0% new duplication. Coverage is deliberately unmeasured for this repository's static-analysis job; no coverage claim is made. Performance evidence is bounded: attempt1 failed on one readiness503/83 probes. Its body/component cause is still unknown because the hosted artifact download times out. Current-main 40082628387 passes. One controlled unchanged-head attempt2 passes readiness100/100 HTTP200, zero errors, max1.890319s. Thresholds/resources/workload are unchanged; the original is retained and is tracked in #731 for component diagnosis. This is not a claim that a rerun explains the503. Request written acceptance or a concrete correction for this exact head. General retains source and normal PHP merge/release ownership. Published-image acceptance remains required after source merge: unchanged SQLite update-validation parity with the maintenance loop running. No released fix or native parity completion is claimed. |
|
Security R2 acceptance — exact head I reviewed the one-commit/four-file delta and found no blocking security, tenant-boundary, protocol, or retry-safety issue:
Independent exact-tree checks: clean checkout and merge base; declared four paths only; The attempt-1 readiness Decision: accepted for this exact R2 head. Any head change requires re-review. General retains PHP source/merge/release ownership, and published-image acceptance with the maintenance loop running is still required; this review makes no native parity or released-fix claim. |
|
Merged normally as bce669d at10:17:57 UTC after exact-head Security R2 acceptance. The merge tree cecc7146332cd88bac3b83656705616fa6be0045 exactly equals the reviewed/tested source. The completed remote branch is absent. Independent main qualification is now terminal success: feature 40085355406, performance 40085355386, HTTP topology 40085355418, public boundary40085355450, CodeQL/push40085355144 and Sonar40085355448. Direct Sonar analysis #726 remains open for published PHP acceptance with the SQLite maintenance loop running. #733 independently adopts the published Core2.13 readers and prepares a fresh Server patch version; the existing2.11.2 tag is unchanged. Original readiness diagnosis stays open in #731 and worker-registration replacement fencing stays separate in #732. No released fix or native parity completion is claimed. |



Update-validation polls can lose lease claims/reclaims or validation-timeout writes during database contention. Their refusal also differs from the other task polls: generic SQLite refusal or an untyped MySQL/PostgreSQL 500.
Use the existing bounded all-backend mutation retrier around each atomic claim/reclaim and timeout transaction. Each attempt reads the current row under its existing lock, preserving terminal results and completion fences. Return the established
backend_lock_pressurepoll envelope after exhaustion, including the fallback renderer path. Unexpected database errors still surface normally. Refs #726.Candidate 430a7c9, tree cecc7146332cd88bac3b83656705616fa6be0045, based on current main960aa305. Actual source qualification on PHP8.3.36 / Laravel13.34.0 with the unchanged Core2.11.4 lock:
Fresh hosted qualification and exact-head Security review remain required. Published PHP image acceptance, including the unchanged SQLite parity expectation with maintenance running, remains #726 follow-through. The source tests do not prove a deployed image. Native/shared/frozen references are unchanged.