The VBDeleteTask maybe scheduled to run, and isBucketDeletion
flag indicates if so, thus the flusher still needs to check
it to ensure no writes occur to a file that is about to be
deleted.
Change-Id: I746eb372f35c9b838dfab2ee7ac2b6c59606e94a
Reviewed-on: http://review.couchbase.org/76186
Well-Formed: Build Bot <build@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: David Haikney <david.haikney@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
stats.dirtyAgeHighWat.store(std::max(stats.dirtyAge.load(),
stats.dirtyAgeHighWat.load()));
+ // Wait until the VB is deleted before writing
+ if (vbMap.isBucketDeletion(qi->getVBucketId())) {
+ vb->rejectQueue.push(qi);
+ ++vb->opsReject;
+ return NULL;
+ }
+
KVStore *rwUnderlying = getRWUnderlying(qi->getVBucketId());
if (!deleted) {
// TODO: Need to separate disk_insert from disk_update because