]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: set initial pg timestamp as osdmap modified stamp
authorSage Weil <sage@redhat.com>
Wed, 22 Mar 2017 18:21:46 +0000 (13:21 -0500)
committerSage Weil <sage@redhat.com>
Wed, 29 Mar 2017 15:39:27 +0000 (11:39 -0400)
Currently the PGMap may register the new pg in multiple places: the
mgr or mon, and the timestamp is when the mon or mgr gets around to
recording it into its PGMap.  Make this deterministic by using the OSDMap
mtime (which is when the PG was *actually* created).

This fixes a problem where the pg create command has one timestamp (from
the mon) and the pgmap on the mgr has another, so an observer will see the
last_scrub_stamp (and other timestamps) change when nothing has actually
happened.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/PGMap.cc

index 50d2e7755d0ffa420531072298b23419d50bd2b9..ecf2fea9d79317ec708ef5637fdfbcd9ea9258d1 100644 (file)
@@ -2492,7 +2492,7 @@ void PGMapUpdater::register_pg(
     stats.last_deep_scrub_stamp = ps.last_deep_scrub_stamp;
     stats.last_clean_scrub_stamp = ps.last_clean_scrub_stamp;
   } else {
-    utime_t now = ceph_clock_now();
+    utime_t now = osd_map.get_modified();
     stats.last_fresh = now;
     stats.last_active = now;
     stats.last_change = now;