]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PGLog.cc: check if complete_to points to log.end() 23450/head
authorNeha Ojha <nojha@redhat.com>
Sat, 4 Aug 2018 00:38:22 +0000 (17:38 -0700)
committerNeha Ojha <nojha@redhat.com>
Mon, 6 Aug 2018 16:24:00 +0000 (09:24 -0700)
Signed-off-by: Neha Ojha <nojha@redhat.com>
src/osd/PGLog.cc

index 073f5d2c30eb39ecd8c63dafb7cfff53c84cfad6..eb88dc1db3c52fc44557952dffbfdab108c9f6e2 100644 (file)
@@ -51,7 +51,8 @@ void PGLog::IndexedLog::trim(
   eversion_t *write_from_dups)
 {
   assert(s <= can_rollback_to);
-  lgeneric_subdout(cct, osd, 20) << " complete_to " << complete_to->version << dendl;
+  if (complete_to != log.end())
+    lgeneric_subdout(cct, osd, 20) << " complete_to " << complete_to->version << dendl;
 
   auto earliest_dup_version =
     log.rbegin()->version.version < cct->_conf->osd_pg_log_dups_tracked
@@ -87,7 +88,7 @@ void PGLog::IndexedLog::trim(
 
     bool reset_complete_to = false;
     // we are trimming past complete_to, so reset complete_to
-    if (e.version >= complete_to->version)
+    if (complete_to != log.end() && e.version >= complete_to->version)
       reset_complete_to = true;
     if (rollback_info_trimmed_to_riter == log.rend() ||
        e.version == rollback_info_trimmed_to_riter->version) {
@@ -181,7 +182,8 @@ void PGLog::trim(
     dout(10) << "trim " << log << " to " << trim_to << dendl;
     log.trim(cct, trim_to, &trimmed, &trimmed_dups, &write_from_dups);
     info.log_tail = log.tail;
-    dout(10) << " after trim complete_to " << log.complete_to->version << dendl;
+    if (log.complete_to != log.log.end())
+      dout(10) << " after trim complete_to " << log.complete_to->version << dendl;
   }
 }