From 215cd6f6ff7b8cb74df6dc3b94a5928f56ab9540 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Tue, 23 Aug 2016 15:10:44 -0400 Subject: [PATCH] rgw: delete region map after upgrade to zonegroup map 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 --- src/rgw/rgw_rados.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 437cf3b3cc098..a9bce82780a19 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3310,6 +3310,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; } -- 2.39.5