From: Kefu Chai Date: Sat, 9 Mar 2019 04:41:32 +0000 (+0800) Subject: crimson/osd: do not load fullmap.0 X-Git-Tag: v15.0.0~208^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c74afcd9d259d3fb82c73fe66e6561e2ba812455;p=ceph.git crimson/osd: do not load fullmap.0 fullmap.0 is an empty map, it used when we try to rebase inc_map.1. Signed-off-by: chunmei Liu Signed-off-by: Kefu Chai --- diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 56abcd7e20f..d8c6bbcfb87 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -416,11 +416,15 @@ seastar::future OSD::load_map_bl(epoch_t e) seastar::future> OSD::load_map(epoch_t e) { - return load_map_bl(e).then([e, this](bufferlist bl) { - auto o = std::make_unique(); - o->decode(bl); - return seastar::make_ready_future(std::move(o)); - }); + auto o = std::make_unique(); + if (e > 0) { + return load_map_bl(e).then([e, o=std::move(o), this](bufferlist bl) mutable { + o->decode(bl); + return seastar::make_ready_future>(std::move(o)); + }); + } else { + return seastar::make_ready_future>(std::move(o)); + } } seastar::future<> OSD::store_maps(ceph::os::Transaction& t,