From: Samuel Just Date: Mon, 22 Apr 2013 21:50:09 +0000 (-0700) Subject: OSD: don't report peers down if hbclient_messenger is backed up X-Git-Tag: v0.61~111^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d196b5badf15fe645399e8a593e455e3e9e54a97;p=ceph.git OSD: don't report peers down if hbclient_messenger is backed up Signed-off-by: Samuel Just --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 0d8f9700a4df..dc05415dbd46 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2334,9 +2334,15 @@ void OSD::heartbeat_entry() void OSD::heartbeat_check() { assert(heartbeat_lock.is_locked()); + utime_t now = ceph_clock_now(g_ceph_context); + double age = hbclient_messenger->get_dispatch_queue_max_age(now); + if (age > (g_conf->osd_heartbeat_grace / 2)) { + derr << "skipping heartbeat_check, hbqueue max age: " << age << dendl; + return; // hb dispatch is too backed up for our hb status to be meaningful + } // check for incoming heartbeats (move me elsewhere?) - utime_t cutoff = ceph_clock_now(g_ceph_context); + utime_t cutoff = now; cutoff -= g_conf->osd_heartbeat_grace; for (map::iterator p = heartbeat_peers.begin(); p != heartbeat_peers.end();