From: Yan, Zheng Date: Wed, 11 Apr 2018 01:59:04 +0000 (+0800) Subject: mds: properly save snaptable after upgrading version X-Git-Tag: v13.1.0~2^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=67c0b8ed0ef7f9ff23ea246d6fa37aa92c56b262;p=ceph.git mds: properly save snaptable after upgrading version commit 002c732d "mds: make sure snaptable version > 0" is buggy Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 8d8faf199d0..ca60ea60285 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -1317,11 +1317,12 @@ void MDSRank::replay_done() mdlog->get_journaler()->set_writeable(); mdlog->get_journaler()->trim_tail(); - if (snapserver->get_version() == 0) { + if (mdsmap->get_tableserver() == whoami && + snapserver->get_version() == 0) { // upgraded from old filesystem. version 0 snaptable confuses current code. dout(1) << "upgrading snaptable version from 0 to 1" << dendl; snapserver->reset(); - sessionmap.save(new C_MDSInternalNoop); + snapserver->save(new C_MDSInternalNoop); } if (g_conf->mds_wipe_sessions) { @@ -1524,7 +1525,6 @@ void MDSRank::boot_create() mdcache->init_layouts(); - snapserver->set_rank(whoami); inotable->set_rank(whoami); sessionmap.set_rank(whoami); @@ -1560,6 +1560,7 @@ void MDSRank::boot_create() // initialize tables if (mdsmap->get_tableserver() == whoami) { dout(10) << "boot_create creating fresh snaptable" << dendl; + snapserver->set_rank(whoami); snapserver->reset(); snapserver->save(fin.new_sub()); }