From: Sage Weil Date: Sat, 22 Feb 2014 17:29:15 +0000 (-0800) Subject: mon/PGMap: fix osd_epochs update X-Git-Tag: v0.78~123^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1304%2Fhead;p=ceph.git mon/PGMap: fix osd_epochs update 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 --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index ad2aacbf6db0..2d3d105cd48d 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -229,8 +229,9 @@ void PGMap::apply_incremental(CephContext *cct, const Incremental& inc) 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::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);