Repository navigation
Retain soak completion evidence and publish lock pressure diagnostics - #673
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Keep the release branch's registry lock-order fix and replace its deadlock test with the broader concurrent registration and striped lookup test, with a deadline long enough not to flake under load. Carry metrics_identity through ClientHost's new Option runtime and Drop-based kill, and restore the ledger flag import Mia's queue-scoped DLQ marking needs.
bulk_rescue_test on the release branch already runs the identical retry_accounting_uses_one_snapshot_during_promotion as a regular test; the ignored copy in the drain diagnostic added nothing.
lock_pressure_drain_test was a copy of bulk_rescue_test's backlog scenario plus a second completion-audit implementation. bulk_rescue_test now installs the persona soak's completion witness (gate_proof.sql) and checks that committed recovery and live completions are exactly the attempts its handlers ran, once each, and that every rescued job ends dead-lettered or completed. The recovery wait counts witnessed completions instead of terminal_jobs rows, which prune can remove. The audit controls duplicated the soak oracle's witness tests and the completion-cost probe asserted nothing, so they go. read_footprint_test's operation sweep was the same 26 operations the operation_lock_footprint_test fixture runs with timing markers; its bulk failed-to-DLQ plan diagnostic moves into that file. In scripts/lock-pressure, offline_core.py was core_parser.py plus a three-line fast path kept only to be compared against it: fold the fast path in and drop the copy, along with core_parser's undocumented CLI and the unused log_helpers functions.
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 92a8a11f53
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ock-pressure-evidence # Conflicts: # CHANGELOG.md # awa/tests/bulk_rescue_test.rs # awa/tests/persona_soak/personas/mod.rs # awa/tests/persona_soak/personas/sam.rs # awa/tests/persona_soak/run.rs
…dget The witness and audit pools, and the child processes' witness connections, came out of the headroom kept for the oracle and chaos sessions. Under a budget the personas fill, that could exhaust the server and turn completion evidence inconclusive.
Prune can remove a completed job's terminal rows before the persona soak oracle sees them, which left completed work unprovable. With
AWA_SOAK_GATE_PROOF=1, the soak installs triggers that copy every committed completion, and every handler return, into plain tables prune never touches. The oracle resolves completions from that witness, reports duplicate completions and duplicate lease identities as violations, and treats missing or failed witness evidence as inconclusive rather than as a pass.Also in this PR:
Job.run_leaseis exposed as a read-only property, so the Python persona can record its handler returns.bulk_rescue_testinstalls the same witness for its 50,000-claim abandoned backlog. It checks that the committed recovery and live completions are exactly the attempts its handlers ran, once each, and that every rescued job ends either dead-lettered or completed.operation_lock_footprint_test(ignored): samples relation locks for 26 public operations and logs the plan of a 10,000-job bulk failed-to-DLQ move.scripts/lock-pressure: helpers for replaying PostgreSQL JSON logs and archives, a ring-slot observer, a relation-lock snapshot query and a prune-tracing overlay generator. They do not include a campaign runner or release acceptance criteria.docs/test-plan.mdandscripts/lock-pressure/README.mddescribe the probes' overhead and limits.Testing
cargo fmt, plus workspace andawa-pythonclippy with--all-targets --all-features -D warnings.persona_soak_testunit tests: 79 passed on PostgreSQL 17.bulk_rescue_testpasses in release and debug builds.operation_lock_footprint_test --ignoredpasses in a release build.scripts/lock-pressure/check_parsers.pyandtest_soak_python.pypass.AWA_SOAK_GATE_PROOF=1: PASS with the oracle complete. 105,005 committed completions over 105,005 distinct attempts. Most completions were resolved from the witness after prune. Throughput was about 10% lower than an uninstrumented run on the same host.