]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: handle discontinuous mdsmap
authorYan, Zheng <zyan@redhat.com>
Wed, 11 Jul 2018 03:01:43 +0000 (11:01 +0800)
committerYan, Zheng <zyan@redhat.com>
Sun, 22 Jul 2018 10:22:35 +0000 (18:22 +0800)
commit299fcd95ae21f66de5a1e3c5d8529a7f49e7a0f1
treec9d38d91445b5072880b5f482ad877e9a4a93ace
parenta957a92498d5e35fcf8f59ff30204765309f8e25
mds: handle discontinuous mdsmap

There are two cases that a mds can get discontinuous mdsmap:
 - the mdsmap was sent by other mds
 - connection to monitor was reset

Monitor does not preserve old version mdsmap. There is no easy way to
ensure mds always gets continuous mdsmap. Instead, making mds handle
discontinuous mdsmap is not difficult. When failover happens in multimds
cluster, survivor mds may miss the mdsmap that indicates old mds failed
and/or the mdsmap that indicates new mds started to replay. But the
survivor mds always get the mdsmap that indicates the new mds entered
resolve state.

Fixes: http://tracker.ceph.com/issues/24856
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit 7de9da4a43914082eea0a1f9c8b98ce285e873ef)

 Conflicts:
src/mds/MDSRank.cc
src/mds/MDSMap.cc
src/mds/MDSRank.cc