Skip to content

v0.9.0-rc.32

Choose a tag to compare

@github-actions github-actions released this 03 Jun 02:59
· 33 commits to main since this release
v0.9.0-rc.32
8266a59

Fix: tombstone resurrection race in CRDT sync (#218, closes #217). Single-fix release.

Fixed

  • initiate_sync no longer re-sends tombstoned documents as live snapshots. The send path (initiate_sync_inner) had no tombstone guard, while the receive path (receive_sync_message, apply_state_snapshot) both reject sync for tombstoned docs. Because store.get still returns the pre-delete bytes after a tombstone (separate metadata), a reconnect's "sync existing documents" pass re-sent a deleted doc as a StateSnapshot, racing the tombstone and resurrecting it on the peer when the snapshot applied before the tombstone was recorded. Adds the symmetric send-side has_tombstone guard. Surfaced as the flaky downstream peat-node quickstart-compose delete gate. Regression test (initiate_sync_skips_tombstoned_document) uses an on-disk store and pins that a tombstoned doc is never sent.