]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix issue with concurrent versioned deletes leaving behind olh entries 55162/head
authorCory Snyder <csnyder@1111systems.com>
Fri, 12 Jan 2024 14:51:14 +0000 (14:51 +0000)
committerCory Snyder <csnyder@1111systems.com>
Fri, 12 Jan 2024 14:51:18 +0000 (14:51 +0000)
Fixes a scenario where BI OLH entries were left behind after racing
delete requests for the same versioned object instance.

Fixes: https://tracker.ceph.com/issues/64014
Signed-off-by: Cory Snyder <csnyder@1111systems.com>
src/cls/rgw/cls_rgw.cc

index 034660a11ed12de69efd1b2f4e5abf7f33f66ed7..b957f0aaaa69db29e0d6ee48294f56d77c0d1d7f 100644 (file)
@@ -1906,11 +1906,10 @@ static int rgw_bucket_unlink_instance(cls_method_context_t hctx, bufferlist *in,
   BIOLHEntry olh(hctx, dest_key);
 
   int ret = obj.init();
-  if (ret == -ENOENT) {
-    return 0; /* already removed */
-  }
   if (ret < 0) {
-    CLS_LOG(0, "ERROR: obj.init() returned ret=%d", ret);
+    if (ret != -ENOENT) {
+      CLS_LOG(0, "ERROR: obj.init() returned ret=%d", ret);
+    }
     return ret;
   }