From: Sage Weil Date: Fri, 18 Sep 2015 01:45:16 +0000 (-0400) Subject: osd: do not send dup failure reports X-Git-Tag: v10.0.1~26^2~48 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c9534dfb15a595387f2daf2795fa03e6330efb7b;p=ceph.git osd: do not send dup failure reports If a failure report is already pending, we do not need to resend it. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index b528914e39d..5b49ebd4604 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4743,11 +4743,13 @@ void OSD::send_failures() utime_t now = ceph_clock_now(cct); while (!failure_queue.empty()) { int osd = failure_queue.begin()->first; - int failed_for = (int)(double)(now - failure_queue.begin()->second); entity_inst_t i = osdmap->get_inst(osd); - monc->send_mon_message(new MOSDFailure(monc->get_fsid(), i, failed_for, - osdmap->get_epoch())); - failure_pending[osd] = make_pair(failure_queue.begin()->second, i); + if (!failure_pending.count(osd)) { + int failed_for = (int)(double)(now - failure_queue.begin()->second); + monc->send_mon_message(new MOSDFailure(monc->get_fsid(), i, failed_for, + osdmap->get_epoch())); + failure_pending[osd] = make_pair(failure_queue.begin()->second, i); + } failure_queue.erase(osd); } }