]> git.apps.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)
committerCasey Bodley <cbodley@redhat.com>
Fri, 3 Mar 2017 17:16:24 +0000 (12:16 -0500)
Fixes: http://tracker.ceph.com/issues/18980
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_user.cc

index 7ee8eb7813cb8e573bc4f08133a26c057f324cbb..6c82524d9ea59534c01c9d7c1157602273ff46fe 100644 (file)
@@ -375,9 +375,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)
@@ -445,11 +447,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;
   }