From e78b215da488865cc1a3a25b873f47fbf8d0d8b9 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Fri, 20 May 2016 09:52:01 +0200 Subject: [PATCH] rgw: add missing metadata_heap pool to old zones Fixes: http://tracker.ceph.com/issues/15937 Signed-off-by: Orit Wasserman Signed-off-by: Abhishek Lekshmanan (cherry picked from commit b79856bd3f7db8498231d7f35b53b4bcb44a0422) --- src/rgw/rgw_rados.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 18778271ca328..ca29607386567 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3331,6 +3331,17 @@ int RGWRados::replace_region_with_zonegroup() ldout(cct, 0) << "failed to list regions: ret "<< ret << " " << cpp_strerror(-ret) << dendl; return ret; } else if (ret == -ENOENT || regions.empty()) { + RGWZoneParams zoneparams(default_zone_name); + int ret = zoneparams.init(cct, this); + if (ret < 0 && ret != -ENOENT) { + ldout(cct, 0) << __func__ << ": error initializing default zone params: " << cpp_strerror(-ret) << dendl; + return ret; + } + /* default zone is missing meta_heap */ + if (ret != -ENOENT && zoneparams.metadata_heap.name.empty()) { + zoneparams.metadata_heap = ".rgw.meta"; + return zoneparams.update(); + } return 0; } @@ -3431,6 +3442,9 @@ int RGWRados::replace_region_with_zonegroup() ldout(cct, 0) << "failed to init zoneparams " << iter->first << ": " << cpp_strerror(-ret) << dendl; return ret; } + if (zoneparams.metadata_heap.name.empty()) { + zoneparams.metadata_heap = ".rgw.meta"; + } zonegroup.realm_id = realm.get_id(); ret = zoneparams.update(); if (ret < 0 && ret != -EEXIST) {