osd/PG: tolerate missing epoch key

An orphan PG may have an info attr but no epoch key.

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2015-10-24 19:51:15 -04:00
parent 04a486dfde
commit b9ac90d0a8

View File

@ -2847,7 +2847,10 @@ int PG::peek_map_epoch(ObjectStore *store,
values.clear();
keys.insert(ek);
store->omap_get_values(coll_t::meta(), legacy_infos_oid, keys, &values);
assert(values.size() == 1);
if (values.size() < 1) {
// probably bug 10617; see OSD::load_pgs()
return -1;
}
bufferlist::iterator p = values[ek].begin();
::decode(cur_epoch, p);
} else {