]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix for bucket delete racing with mdlog sync 12044/head
authorCasey Bodley <cbodley@redhat.com>
Tue, 25 Oct 2016 17:01:59 +0000 (13:01 -0400)
committerAbhishek Varshney <abhishek.varshney@flipkart.com>
Thu, 17 Nov 2016 14:38:24 +0000 (20:08 +0530)
Fixes: http://tracker.ceph.com/issues/17698
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit e9cf41f9bfd1aa7d35f945f6a3ee6bb66c135bad)

src/rgw/rgw_op.cc

index 2da2129dd4ffee0c88adc33bd4ad18b9a3fb41e0..b90cc1dfcf60f1b5b22f4b4f9ae1aaba6f754bda 100644 (file)
@@ -2203,6 +2203,14 @@ void RGWDeleteBucket::execute()
   }
 
   op_ret = store->delete_bucket(s->bucket, ot);
+
+  if (op_ret == -ECANCELED) {
+    // lost a race, either with mdlog sync or another delete bucket operation.
+    // in either case, we've already called rgw_unlink_bucket()
+    op_ret = 0;
+    return;
+  }
+
   if (op_ret == 0) {
     op_ret = rgw_unlink_bucket(store, s->user->user_id, s->bucket.tenant,
                               s->bucket.name, false);