]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: emit useful scrub error on missing clone
authorSage Weil <sage@newdream.net>
Sun, 12 Feb 2012 05:15:11 +0000 (21:15 -0800)
committerSage Weil <sage@newdream.net>
Sun, 12 Feb 2012 05:15:11 +0000 (21:15 -0800)
Signed-off-by: Sage Weil <sage@newdream.net>
src/osd/ReplicatedPG.cc

index e42c317af07235615d9a61e724bce57d6439c917..91fab1074810cc6013dfd65f72149135cf9d86c1 100644 (file)
@@ -5858,6 +5858,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
       else {
        curclone = snapset.clones.rbegin();
        head = p->first;
+       dout(20) << "  snapset " << snapset << dendl;
       }
 
       // subtract off any clone overlap
@@ -5916,7 +5917,12 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
 
       stat.num_object_clones++;
       
-      assert(soid.snap == *curclone);
+      if (soid.snap != *curclone) {
+       osd->clog.error() << mode << " " << info.pgid << " " << soid
+                         << " expected clone " << *curclone;
+       ++errors;
+       assert(soid.snap == *curclone);
+      }
 
       assert(p->second.size == snapset.clone_size[*curclone]);