]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/SnapMapper: clean up broken snapmapper entry if present
authorSage Weil <sage@redhat.com>
Sun, 21 Jan 2018 20:19:01 +0000 (14:19 -0600)
committerNathan Cutler <ncutler@suse.com>
Thu, 29 Mar 2018 09:51:51 +0000 (11:51 +0200)
Better to clean up than to crash the OSD.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit fc378a0dc2aafbeee44871a304717b916a3f9f88)

src/osd/SnapMapper.cc

index 81c548510045272a19784f389e49884a75d015d8..c88b7ea1565b6dd3f208a3b9752c2b61d27407c5 100644 (file)
@@ -243,7 +243,12 @@ void SnapMapper::add_oid(
   {
     object_snaps out;
     int r = get_snaps(oid, &out);
-    assert(r == -ENOENT);
+    if (r != -ENOENT) {
+      derr << __func__ << " found existing snaps mapped on " << oid
+          << ", removing" << dendl;
+      assert(!cct->_conf->osd_debug_verify_snaps);
+      remove_oid(oid, t);
+    }
   }
 
   object_snaps _snaps(oid, snaps);