]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: Adjust lease time checks.
authorGreg Farnum <gregf@hq.newdream.net>
Tue, 24 Aug 2010 18:49:43 +0000 (11:49 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Tue, 24 Aug 2010 18:49:43 +0000 (11:49 -0700)
For some reason this fixes (apparently incorrect) warnings I saw
while running a 2-mon system on my dev server.

src/mon/Paxos.cc

index 2d2af7c49067db18d5907d2d9c06ef47eadcc9de..cb7c104e5d2e44de43eadf7e0a623480dee6f4f4 100644 (file)
@@ -570,15 +570,17 @@ void Paxos::handle_lease(MMonPaxos *lease)
     lease->put();
     return;
   }
-
-  if (lease->sent_timestamp > g_clock.now() + g_conf.mon_clock_drift_allowed) {
+  utime_t allowed_time;
+  allowed_time.set_from_double(g_clock.now() + g_conf.mon_clock_drift_allowed);
+  if (lease->sent_timestamp > allowed_time) {
     utime_t warn_diff = g_clock.now() - last_clock_drift_warn;
     if ((last_clock_drift_warn == utime_t()) ||
-       (warn_diff > 
+       (warn_diff >
         pow(g_conf.mon_clock_drift_warn_backoff, clock_drift_warned))) {
       stringstream ss;
       ss << "lease_expire from mon" << lease->get_source().num()
         << " was sent from future time " << lease->sent_timestamp
+        << " with expected time <=" << allowed_time
         << ", clocks not synchronized"
         << std::endl;
       mon->get_logclient()->log(LOG_WARN, ss);
@@ -648,10 +650,13 @@ void Paxos::handle_lease_ack(MMonPaxos *ack)
             << " dup (lagging!), ignoring" << dendl;
   }
 
-  if (ack->sent_timestamp > g_clock.now() + g_conf.mon_clock_drift_allowed) {
+  utime_t allowed_time;
+  allowed_time.set_from_double(g_clock.now() + g_conf.mon_clock_drift_allowed);
+  if (ack->sent_timestamp > allowed_time) {
     stringstream ss;
     ss << "lease_ack from mon" << from
        << " was sent from future time " << ack->sent_timestamp
+       << " with allowed time <=" << allowed_time
        << ", clocks not synchronized." << std::endl;
     mon->get_logclient()->log(LOG_WARN, ss);
   }