When a stream is first requested, the rollback logic checks if the start-seqno is below the purge-seqno, however by the time the backfill is actually scheduled to run, the purge-seqno could of changed (i.e. compaction finished).
- streamRequest - compare startSeqno against vb->getPurgeSeqno(), stream is OK and backfill is scheduled
- compaction finishes and sets purgeSeqno to be > than startSeqno
- backfill runs and is started from the requested point and may miss deletions which have been purged
|For Gerrit Dashboard: MB-29512|
|93690,8||MB-29480, MB-29512: Fail backfills that go below purge-seqno||vulcan||kv_engine||Status: MERGED||+2||+1|
|93994,1||Merge branch 'vulcan' into 'master'||master||kv_engine||Status: MERGED||+2||+1|