void MDS::handle_mds_beacon(MMDSBeacon *m)
{
- dout(10) << "handle_mds_beacon " << ceph_mds_state_name(m->get_state())
- << " seq " << m->get_seq() << dendl;
version_t seq = m->get_seq();
// update lab
if (beacon_seq_stamp.count(seq)) {
assert(beacon_seq_stamp[seq] > beacon_last_acked_stamp);
beacon_last_acked_stamp = beacon_seq_stamp[seq];
-
+ utime_t now = g_clock.now();
+ utime_t rtt = now - beacon_last_acked_stamp;
+
+ dout(10) << "handle_mds_beacon " << ceph_mds_state_name(m->get_state())
+ << " seq " << m->get_seq()
+ << " rtt " << rtt << dendl;
+
// clean up seq_stamp map
while (!beacon_seq_stamp.empty() &&
beacon_seq_stamp.begin()->first <= seq)
beacon_seq_stamp.erase(beacon_seq_stamp.begin());
- utime_t now = g_clock.now();
- if (laggy &&
- now - beacon_last_acked_stamp < g_conf.mds_beacon_grace) {
+ if (laggy && rtt < g_conf.mds_beacon_grace) {
dout(1) << " clearing laggy flag" << dendl;
laggy = false;
laggy_until = now;
}
reset_beacon_killer();
+ } else {
+ dout(10) << "handle_mds_beacon " << ceph_mds_state_name(m->get_state())
+ << " seq " << m->get_seq() << " dne" << dendl;
}
delete m;