Commit b8d9558
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 a9c5db2 commit b8d9558
1 file changed
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1973 | 1973 | | |
1974 | 1974 | | |
1975 | 1975 | | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
1976 | 1989 | | |
1977 | 1990 | | |
1978 | 1991 | | |
| |||
0 commit comments