for (map<pg_shard_t, pg_info_t>::const_iterator i = infos.begin();
i != infos.end();
++i) {
+ if (max_last_epoch_started_found < i->second.history.last_epoch_started) {
+ min_last_update_acceptable = eversion_t::max();
+ max_last_epoch_started_found = i->second.history.last_epoch_started;
+ }
if (max_last_epoch_started_found < i->second.last_epoch_started) {
min_last_update_acceptable = eversion_t::max();
max_last_epoch_started_found = i->second.last_epoch_started;
min_last_update_acceptable = i->second.last_update;
}
}
- assert(min_last_update_acceptable != eversion_t::max());
+ if (min_last_update_acceptable == eversion_t::max())
+ return infos.end();
map<pg_shard_t, pg_info_t>::const_iterator best = infos.end();
// find osd with newest last_update (oldest for ec_pool).