From: John Spray Date: Wed, 11 Oct 2017 10:36:36 +0000 (+0100) Subject: mds: additional damage handling case in EImportStart X-Git-Tag: v13.0.1~569^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F18244%2Fhead;p=ceph.git mds: additional damage handling case in EImportStart Fixes: http://tracker.ceph.com/issues/21759 Signed-off-by: John Spray --- diff --git a/src/mds/journal.cc b/src/mds/journal.cc index c659c2e7b12..4e6ab183bb8 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -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();