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)
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;
}