]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: warn about too many dups when loading PGLog
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 11 Jul 2022 14:08:32 +0000 (14:08 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 18 Aug 2022 21:43:30 +0000 (21:43 +0000)
Fixes: https://tracker.ceph.com/issues/53729
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 7376caac965d303d8ee92de6f663405e4f96fe4c)

src/osd/PGLog.h

index 9abfb3271e04dbe253aa9d5ccb2ff76d19f6fa07..a3f14c59f6b47e1be0dc2cd8672889c27bbaab67 100644 (file)
@@ -1439,6 +1439,7 @@ public:
     missing.may_include_deletes = false;
     std::list<pg_log_entry_t> entries;
     std::list<pg_log_dup_t> dups;
+    const auto NUM_DUPS_WARN_THRESHOLD = 2*cct->_conf->osd_pg_log_dups_tracked;
     if (p) {
       using ceph::decode;
       for (p->seek_to_first(); p->valid() ; p->next()) {
@@ -1475,6 +1476,14 @@ public:
          if (!dups.empty()) {
            ceph_assert(dups.back().version < dup.version);
          }
+         if (dups.size() == NUM_DUPS_WARN_THRESHOLD) {
+           ldpp_dout(dpp, 0) << "read_log_and_missing WARN num of dups exceeded "
+                             << NUM_DUPS_WARN_THRESHOLD << "."
+                             << " You can be hit by THE DUPS BUG"
+                             << " https://tracker.ceph.com/issues/53729."
+                             << " Consider ceph-objectstore-tool --op trim-pg-log-dups"
+                             << dendl;
+         }
          dups.push_back(dup);
        } else {
          pg_log_entry_t e;