Repository navigation
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
Final self-review update: PR #30112 now points to
The existing BVT/MOTR and package evidence remains applicable because this follow-up does not modify production code, their fixtures or their oracles. Repository CI is still a separate gate, including the independent latest-main build problem #30108 / #30109 noted above. |
|
Rebased onto main
PR description updated to the repository template and current evidence. New-head GitHub CI remains separate from these completed local checks. |
|
mo-bot review · Commit: Review completed. Read the assessment. |
XuPeng-SH
left a comment
There was a problem hiding this comment.
mo-bot review · mo-bot-local · review
Commit: 5d85502f7deea89b92b8caba6add8352d3fa42ce
Assessment: approve
Reviewed the complete 11-file delta and latest comments. Resolved-key routing, conservative partition fallback, and complete expression traversal close the previous correctness finding. No actionable defects remain.
Model: gpt-6-astra / xhigh
Session: 01a12d8f-7dea-77c2-a565-38d45b5564e4 · slot 0 · generation 0
Validation:
-
Linux/amd64, Go 1.27.1: isolation preflight and native build/provenance passed; assigned source remained unchanged.
-
All 592 tests across partitionprune, partitionservice and disttae, plus 20 partition-consumer tests, passed normally and under the race detector.
-
Nine-schema concurrent ODKU regression passed normally, under race, and in two additional race repetitions, including cancellation and early-failure cleanup.
-
Exact changed BVT passed twice: 26/26 checks each, zero ignored, with teardown verified between runs. Initial harness failures occurred before SQL execution and were resolved.
-
Formatting, vet, incremental golangci-lint and molint passed.
-
Commands, source fingerprints, exit receipts and retained logs reconciled in /home/xupeng/.local/state/mo-bot/jobs/0d7257ef7c70dc4e1bea6499/attempt-1/validation-audit.json.
Limitations:
-
Full repository CI and the original production workload were not replayed; acceptance uses verified current-commit local evidence.
-
Conservative all-partition fallback can increase work; throughput was not benchmarked.
Merge Queue Status
This pull request spent 4 minutes 13 seconds in the queue, with no time running CI. ReasonPull request #30112 has been dequeued Pull request from fork cannot be queued. This pull request comes from a fork, and Mergify needs the author's permission to update its branch.
HintYou should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it. Waiting for any of
All conditions
Tick the box to put this pull request back in the merge queue (same as
|
What type of PR is this?
Which issue(s) this PR fixes:
Fixes #30084
What this PR does / why we need it:
A pessimistic RC ODKU must check committed modifications of the locked, resolved row, after a secondary UNIQUE conflict resolves an incoming primary key to a different existing row. Pruning that version check with the incoming image can miss the competitor's commit and acknowledge a stale write.
Design and correction
The previous PR head passed its five controls but still failed repeated expressions. On
HASH(id+id),RANGE(id+id),RANGE(id*id)andRANGE((id+id)*id), two acknowledged writes produced two(1,10,2)rows instead of one(1,10,3). A separate sequential-write experiment also exposed PK equality-read errors from incomplete constant substitution. Both defects were independently reproduced on macOS/ARM64 before repair.Regression coverage and validation
Rebased without conflicts onto main
8aaa8ae9e678f5d2c6fc52aca3b1d675b9d17a2c. Current-code validation uses Go 1.27.1 on macOS/ARM64 with verified CPU native-artifact provenance.(1,10,3)gpt-6.1-sol/xhigh; actual runtime records and review dispositions retainedTests reuse existing fixtures and the existing before-lock hook with one seed row; no sleeps or fabricated lock results are needed for the snapshot-to-lock witness. Typed UTs evaluate bound expressions with distinct incoming/resolved vectors, leading RowID, mixed-column controls and immutable metadata. The existing lock-timeout BVT keeps its original oracle and adds repeated-expression ODKU/read/update/delete coverage.
Expression traversal is linear in expression size. Ambiguous projections can check more partitions; no throughput improvement or zero-overhead claim is made. The existing legacy
PruneResult.Close/error-path batch ownership remains a separate baseline concern. This change prevents new violations; it does not repair previously duplicated rows or claim to reproduce the incident's exact 18-versus-3 counts.Final revision:
5d85502f7deea89b92b8caba6add8352d3fa42ce. GitHub CI for this revision remains a separate, pending gate.