From 58eb3545e4db2c9208fbc09789b89dd9d2ff7a71 Mon Sep 17 00:00:00 2001 From: Abhishek Lekshmanan Date: Mon, 19 Nov 2018 17:21:15 +0100 Subject: [PATCH] rgw: allow init complete to proceed in case of erroneus zone deletes Currently a master zone delete in a zonegroup followed by a period commit would render RGWRados to be unusable, check if the zonegroup is empty and continue initialization in these cases so that removal can proceed. Fixes: http://tracker.ceph.com/issues/37328 Signed-off-by: Abhishek Lekshmanan --- src/rgw/services/svc_zone.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/rgw/services/svc_zone.cc b/src/rgw/services/svc_zone.cc index 3b95a4500467..2e1e67706808 100644 --- a/src/rgw/services/svc_zone.cc +++ b/src/rgw/services/svc_zone.cc @@ -606,6 +606,9 @@ int RGWSI_Zone::init_zg_from_period(bool *initialized) // use endpoints from the zonegroup's master zone auto master = zg.zones.find(zg.master_zone); if (master == zg.zones.end()) { + // Check for empty zonegroup which can happen if zone was deleted before removal + if (zg.zones.size() == 0) + continue; // fix missing master zone for a single zone zonegroup if (zg.master_zone.empty() && zg.zones.size() == 1) { master = zg.zones.begin(); -- 2.47.3