]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: delete region map after upgrade to zonegroup map 10890/head
authorCasey Bodley <cbodley@redhat.com>
Tue, 23 Aug 2016 19:10:44 +0000 (15:10 -0400)
committerLoic Dachary <ldachary@redhat.com>
Fri, 26 Aug 2016 07:05:21 +0000 (09:05 +0200)
convert_regionmap() reads the region map and uses it to initialize the
zonegroup map.  but it doesn't remove the region_map afterwards, so
radosgw (and some radosgw-admin commands) will keep doing this on
startup, overwriting any changes made to the period/zonegroup map

Fixes: http://tracker.ceph.com/issues/17051
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 215cd6f6ff7b8cb74df6dc3b94a5928f56ab9540)

src/rgw/rgw_rados.cc

index 3b5743a7d44d88f71d524daea695ed5a17251403..561782028cc6492d34a10f261d8ee4afb0cdbd63 100644 (file)
@@ -3273,6 +3273,15 @@ int RGWRados::convert_regionmap()
   current_period.set_user_quota(zonegroupmap.user_quota);
   current_period.set_bucket_quota(zonegroupmap.bucket_quota);
 
+  // remove the region_map so we don't try to convert again
+  rgw_obj obj(pool, oid);
+  ret = delete_system_obj(obj);
+  if (ret < 0) {
+    ldout(cct, 0) << "Error could not remove " << obj
+        << " after upgrading to zonegroup map: " << cpp_strerror(ret) << dendl;
+    return ret;
+  }
+
   return 0;
 }