From 7376caac965d303d8ee92de6f663405e4f96fe4c Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Mon, 11 Jul 2022 14:08:32 +0000 Subject: [PATCH] osd: warn about too many dups when loading PGLog Fixes: https://tracker.ceph.com/issues/53729 Signed-off-by: Radoslaw Zarzynski --- src/osd/PGLog.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index 9abfb3271e04d..a3f14c59f6b47 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -1439,6 +1439,7 @@ public: missing.may_include_deletes = false; std::list entries; std::list 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; -- 2.39.5