]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: When generating past intervals due to an import end at pg epoch
authorDavid Zafman <dzafman@redhat.com>
Tue, 21 Jul 2015 00:48:15 +0000 (17:48 -0700)
committerDavid Zafman <dzafman@redhat.com>
Wed, 6 Apr 2016 16:53:01 +0000 (09:53 -0700)
Add assert() to make sure same_interval_since isn't too far forward

Fixes: #12387
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 65dcc2da76750d0b6dd2cf0031c44f32749f33e5)

src/osd/PG.cc
src/osd/osd_types.cc

index 7917638b1e7248def5725e0247ce973e03f8aff5..da05b804fd860415faac073a7b1bdeed9ca95c28 100644 (file)
@@ -661,7 +661,7 @@ bool PG::_calc_past_interval_range(epoch_t *start, epoch_t *end, epoch_t oldest_
     *end = info.history.same_interval_since;
   } else {
     // PG must be imported, so let's calculate the whole range.
-    *end = osd->get_superblock().newest_map;
+    *end = osdmap_ref->get_epoch();
   }
 
   // Do we already have the intervals we want?
index 52214a51f359b49dfa0c5afa53f6bac59b0c1448..b13925c6ea0f6c00a32027a2d8f981a5fca6965c 100644 (file)
@@ -2710,6 +2710,7 @@ bool pg_interval_t::check_new_interval(
     pg_interval_t& i = (*past_intervals)[same_interval_since];
     i.first = same_interval_since;
     i.last = osdmap->get_epoch() - 1;
+    assert(i.first <= i.last);
     i.acting = old_acting;
     i.up = old_up;
     i.primary = old_acting_primary;