From e7af52a147cc6e1a578d51193a2d5a425cee8a20 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 5 Feb 2015 03:07:50 -0800 Subject: [PATCH] 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) --- src/mon/OSDMonitor.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 9e341d396346d..5426f63189917 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -895,8 +895,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; -- 2.39.5