]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: if user.email is empty, dont try to delete
authorCasey Bodley <cbodley@redhat.com>
Fri, 3 Mar 2017 16:42:45 +0000 (11:42 -0500)
committerAlexey Sheplyakov <asheplyakov@mirantis.com>
Tue, 21 Mar 2017 09:02:17 +0000 (13:02 +0400)
Fixes: http://tracker.ceph.com/issues/18980
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 022ecf0fcc8e44912c8758ee1d9a452dc23cbbce)

src/rgw/rgw_user.cc

index 6e85d07854362304658cbecf237f8e28ceb0d9ae..df3146596d545108c0d9ed680dc97aae423f788c 100644 (file)
@@ -373,9 +373,11 @@ int rgw_remove_uid_index(RGWRados *store, rgw_user& uid)
 
 int rgw_remove_email_index(RGWRados *store, string& email)
 {
+  if (email.empty()) {
+    return 0;
+  }
   rgw_obj obj(store->get_zone_params().user_email_pool, email);
-  int ret = store->delete_system_obj(obj);
-  return ret;
+  return store->delete_system_obj(obj);
 }
 
 int rgw_remove_swift_name_index(RGWRados *store, string& swift_name)
@@ -443,11 +445,11 @@ int rgw_delete_user(RGWRados *store, RGWUserInfo& info, RGWObjVersionTracker& ob
     }
   }
 
-  rgw_obj email_obj(store->get_zone_params().user_email_pool, info.user_email);
   ldout(store->ctx(), 10) << "removing email index: " << info.user_email << dendl;
-  ret = store->delete_system_obj(email_obj);
+  ret = rgw_remove_email_index(store, info.user_email);
   if (ret < 0 && ret != -ENOENT) {
-    ldout(store->ctx(), 0) << "ERROR: could not remove " << info.user_id << ":" << email_obj << ", should be fixed (err=" << ret << ")" << dendl;
+    ldout(store->ctx(), 0) << "ERROR: could not remove email index object for "
+        << info.user_email << ", should be fixed (err=" << ret << ")" << dendl;
     return ret;
   }