From 7a8e915483397d740e3be3815ece23f4cd3c6b7a Mon Sep 17 00:00:00 2001 From: John Spray Date: Wed, 11 Oct 2017 11:36:36 +0100 Subject: [PATCH] mds: additional damage handling case in EImportStart Fixes: http://tracker.ceph.com/issues/21759 Signed-off-by: John Spray (cherry picked from commit b4c662c2cf47f7b6f952e776d0212156861eaffb) --- src/mds/journal.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mds/journal.cc b/src/mds/journal.cc index b63fbd980c8b0..70163f1f15d1d 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -2964,7 +2964,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(); -- 2.39.5