]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Fix off by 1 error in trim handling of osd_pg_log_dups_tracked
authorDavid Zafman <dzafman@redhat.com>
Thu, 2 May 2019 02:44:04 +0000 (19:44 -0700)
committerDavid Zafman <dzafman@redhat.com>
Wed, 8 May 2019 22:38:56 +0000 (15:38 -0700)
Move log message out of loop so it doesn't repeat for no reason

Signed-off-by: David Zafman <dzafman@redhat.com>
src/osd/PGLog.cc

index 64d923d5123b6c64f102b09e153064b7a3d4c20f..d7ad0c8dfc776502a7c9b7c7049c0229a154fa02 100644 (file)
@@ -57,8 +57,9 @@ void PGLog::IndexedLog::trim(
   auto earliest_dup_version =
     log.rbegin()->version.version < cct->_conf->osd_pg_log_dups_tracked
     ? 0u
-    : log.rbegin()->version.version - cct->_conf->osd_pg_log_dups_tracked;
+    : log.rbegin()->version.version - cct->_conf->osd_pg_log_dups_tracked + 1;
 
+  lgeneric_subdout(cct, osd, 20) << "earliest_dup_version = " << earliest_dup_version << dendl;
   while (!log.empty()) {
     const pg_log_entry_t &e = *log.begin();
     if (e.version > s)
@@ -70,7 +71,6 @@ void PGLog::IndexedLog::trim(
     unindex(e);         // remove from index,
 
     // add to dup list
-    lgeneric_subdout(cct, osd, 20) << "earliest_dup_version = " << earliest_dup_version << dendl;
     if (e.version.version >= earliest_dup_version) {
       if (write_from_dups != nullptr && *write_from_dups > e.version) {
        lgeneric_subdout(cct, osd, 20) << "updating write_from_dups from " << *write_from_dups << " to " << e.version << dendl;