From: Josh Durgin Date: Mon, 24 Jul 2017 16:53:02 +0000 (-0400) Subject: osd/PGLog: fix inaccurate missing assert X-Git-Tag: v12.1.2~121^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F16539%2Fhead;p=ceph.git osd/PGLog: fix inaccurate missing assert Repair and EIO handling can add missing items after log.tail Fixes: http://tracker.ceph.com/issues/20753 Signed-off-by: Josh Durgin --- diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index d910bc7f56a..9cefb916a0e 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -1296,12 +1296,12 @@ public: for (auto &&i: missing.get_items()) { if (checked.count(i.first)) continue; - if (i.second.need > log.tail || - i.first > info.last_backfill) { - ldpp_dout(dpp, -1) << __func__ << ": invalid missing set entry found " - << i.first << " " << i.second << " log tail = " - << log.tail << " last_backfill = " << info.last_backfill - << dendl; + if (i.first > info.last_backfill) { + ldpp_dout(dpp, -1) << __func__ << ": invalid missing set entry " + << "found before last_backfill: " + << i.first << " " << i.second + << " last_backfill = " << info.last_backfill + << dendl; assert(0 == "invalid missing set entry found"); } bufferlist bv;