Commit 2f5eecf
fix(replication): don't let an out-of-order full update revert a newer record
In the out-of-order resequencing path (precedesExisting <= 0), when audit is on
and the audit walk finds no succeeding updates to resequence around, a full
update fell through to the shared commit and stored the older record over the
newer one (recordToStore = recordUpdate), leaving the cluster non-convergent.
Skip the losing full update instead — the existing record is newer, so this
older update is superseded. Uses a bare return (no writeCommit) to match the
superseded-by-newer-put branch above, so no audit record is written referencing
this losing update's pre-saved blobs.
Reproduced via deployment-tracking: a burst of same-key full puts commits out of
order on a loaded peer and the row gets stuck at a non-terminal status.
Fixes #1170
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent 6cc8ea7 commit 2f5eecf
1 file changed
Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1860 | 1860 | | |
1861 | 1861 | | |
1862 | 1862 | | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
1863 | 1874 | | |
1864 | 1875 | | |
1865 | 1876 | | |
| |||
0 commit comments