]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PGLog: fix inaccurate missing assert 16539/head
authorJosh Durgin <jdurgin@redhat.com>
Mon, 24 Jul 2017 16:53:02 +0000 (12:53 -0400)
committerJosh Durgin <jdurgin@redhat.com>
Mon, 24 Jul 2017 16:55:02 +0000 (12:55 -0400)
Repair and EIO handling can add missing items after log.tail

Fixes: http://tracker.ceph.com/issues/20753
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
src/osd/PGLog.h

index d910bc7f56ad7afaac0c40a64edbeea49c86cbd7..9cefb916a0e623b6fb84755000233ba1238346a5 100644 (file)
@@ -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;