mikebridge commented on PR #41824: URL: https://github.com/apache/superset/pull/41824#issuecomment-4897852942
Final validation round pushed in `beeb91ac83` — two independent validators beyond the review panels: **Independent second-model review (OpenAI Codex, adversarial)** found one real race the panels missed — introduced by round 3's own optimization: the key-based prune could drop a **freshly re-registered same-key entry** (a concurrent `store_result` re-executing the same query re-registers the same canonical value key with a live value). Fixed by pruning on **entry identity** (frozen dataclass, timestamp included) — zero-backend-calls-under-lock preserved — and pinned by a deterministic choreography test that fails under the key-based mutation. Its three smaller items are also in: the single-attempt stale-break retry is now pinned by a test, the staleness boundary is pinned with frozen time (`>`→`>=` now fails), and the docstring names the third best-effort window (plain TTL expiry of a stalled critical section). **Live-Redis validation** (real `cachelib.RedisCache` against the dev-stack Redis — the protocol had only ever run against in-memory fakes): - **8 threads × 40 contended updates on one bucket → 320/320 entries, zero losses, zero skips**, 0.65 s - A genuine TTL-less SETNX orphan (created via cachelib's own serializer, verified `TTL == -1`) broken and recovered by the next writer - The release fence declining a real foreign token; a fresh foreign lock skipped in 0.6 ms without being broken; the acquired lock carrying a real 2 s Redis TTL Suite: **390 passing** — twelve dedicated lock-protocol/concurrency tests, every one validated to fail under the exact mutation or pre-fix code it guards. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
