Skip to content

Commit

Permalink
mon: Monitor: get rid of weighted clock skew reports
Browse files Browse the repository at this point in the history
By weighting the reports we were making it really hard to get rid of a
clock skew warning once the cause had been fixed.

Instead, as soon as we get a clean bill of health, let's run a new round
and soon as possible and ascertain whether that was a transient fix or
for realsies. That should be better than the alternative of waiting for
an hour or something (for a large enough skew) for the warning to go
away - and with it, the admin's sanity ("WHAT AM I DOING WRONG???").

Fixes: #14175

Signed-off-by: Joao Eduardo Luis <joao@suse.de>
  • Loading branch information
jecluis authored and xiaoxichen committed Mar 12, 2016
1 parent ca5babf commit bc16a2a
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/mon/Monitor.cc
Expand Up @@ -3790,6 +3790,10 @@ void Monitor::timecheck_check_skews()
dout(1) << __func__
<< " no clock skews found after " << timecheck_rounds_since_clean
<< " rounds" << dendl;
// make sure the skews are really gone and not just a transient success
// this will run just once if not in the presence of skews again.
timecheck_rounds_since_clean = 1;
timecheck_reset_event();
timecheck_rounds_since_clean = 0;
}

Expand Down Expand Up @@ -3992,11 +3996,7 @@ void Monitor::handle_timecheck_leader(MTimeCheck *m)
<< " delta " << delta << " skew_bound " << skew_bound
<< " latency " << latency << dendl;

if (timecheck_skews.count(other) == 0) {
timecheck_skews[other] = skew_bound;
} else {
timecheck_skews[other] = (timecheck_skews[other]*0.8)+(skew_bound*0.2);
}
timecheck_skews[other] = skew_bound;

timecheck_acks++;
if (timecheck_acks == quorum.size()) {
Expand Down

0 comments on commit bc16a2a

Please sign in to comment.