Details
-
Bug
-
Resolution: Fixed
-
Critical
-
4.6.4, 5.1.0, 5.5.0
-
Untriaged
-
Unknown
Description
The following sequence demonstrates the issue (this has been performed via a unit-test)
- Create DCP and stream from vb0
- store into vb0 k1,k2,k3,k4 and k5
- stream all items, client knows about k1,k2,k3,k4 and k5
- delete k3 and k4 (we have to delete a minimum of 2 items because compaction never purges a delete if its the last seqno)
- run compaction - k3 tombstone is purged
- stream is slow... so we drop its cursor and go to backfill mode
- backfill finds delete(k4)
- client streams all items available and gets delete(k4)
Database has k1,k2,k5
Client has k1,k2,k3,k5
The cursor drop backfill was allowed to go beyond the purge-seqno, a normal stream request with backfill would be a rollback situation.