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.80.10~57^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3782b8b3652c0eb3fb8f65193ecfe09e92925170;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 (cherry picked from commit 400ac237d35d0d1d53f240fea87e8483c0e2a7f5) --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index da06b86beb1..8ad26dee5af 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -829,8 +829,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;