The insert() call here does not overwrite a previous entry, which means
that the osd_epochs map is never moving forward in time. This seems to
have been broken since it was introduced in
091809b814.
Backport: emperor, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
stat_osd_sub(t->second);
t->second = new_stats;
}
- assert(inc.get_osd_epochs().find(osd) != inc.get_osd_epochs().end());
- osd_epochs.insert(*(inc.get_osd_epochs().find(osd)));
+ map<int32_t,epoch_t>::const_iterator j = inc.get_osd_epochs().find(osd);
+ assert(j != inc.get_osd_epochs().end());
+ osd_epochs[j->first] = j->second;
stat_osd_add(new_stats);