mds: additional damage handling case in EImportStart

Fixes: http://tracker.ceph.com/issues/21759
Signed-off-by: John Spray <john.spray@redhat.com>
This commit is contained in:
John Spray 2017-10-11 11:36:36 +01:00
parent e498041607
commit b4c662c2cf

View 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();