From: Sage Weil Date: Thu, 5 Feb 2015 11:07:50 +0000 (-0800) Subject: mon: ignore osd failures from before up_from X-Git-Tag: v0.93~73^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F3631%2Fhead;p=ceph.git mon: ignore osd failures from before up_from If the failure was generated for an instance of the OSD prior to when it came up, ignore it. This probably causes a fair bit of unnecessary flapping in the wild... Backport: giant, firefly Fixes: #10762 Reported-by: Dan van der Ster Signed-off-by: Sage Weil --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 9b1f9801a16fa..0a5668154953a 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -1228,8 +1228,9 @@ bool OSDMonitor::preprocess_failure(MOSDFailure *m) } // already reported? - if (osdmap.is_down(badboy)) { - dout(5) << "preprocess_failure dup: " << m->get_target() << ", from " << m->get_orig_source_inst() << dendl; + if (osdmap.is_down(badboy) || + osdmap.get_up_from(badboy) > m->get_epoch()) { + dout(5) << "preprocess_failure dup/old: " << m->get_target() << ", from " << m->get_orig_source_inst() << dendl; if (m->get_epoch() < osdmap.get_epoch()) send_incremental(m, m->get_epoch()+1); goto didit;