]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: additional damage handling case in EImportStart 18244/head
authorJohn Spray <john.spray@redhat.com>
Wed, 11 Oct 2017 10:36:36 +0000 (11:36 +0100)
committerJohn Spray <john.spray@redhat.com>
Wed, 11 Oct 2017 10:37:26 +0000 (11:37 +0100)
Fixes: http://tracker.ceph.com/issues/21759
Signed-off-by: John Spray <john.spray@redhat.com>
src/mds/journal.cc

index c659c2e7b12bfa2926e8e8e19643b5946844d21c..4e6ab183bb88dc4533ec22ad3159dcc3381fcb93 100644 (file)
@@ -2959,7 +2959,14 @@ void EImportStart::replay(MDSRank *mds)
     bufferlist::iterator blp = client_map.begin();
     ::decode(cm, blp);
     mds->sessionmap.open_sessions(cm);
-    assert(mds->sessionmap.get_version() == cmapv);
+    if (mds->sessionmap.get_version() != cmapv)
+    {
+      derr << "sessionmap version " << mds->sessionmap.get_version()
+           << " != cmapv " << cmapv << dendl;
+      mds->clog->error() << "failure replaying journal (EImportStart)";
+      mds->damaged();
+      ceph_abort();  // Should be unreachable because damaged() calls respawn()
+    }
     mds->sessionmap.set_projected(mds->sessionmap.get_version());
   }
   update_segment();