]> 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>
Mon, 23 Jul 2018 10:16:41 +0000 (18:16 +0800)
commitb93b3be93bf24099f335bf6c385b618b943f3790
tree56f423bdffb137f36b16c856d5c45e214bbbd926
parentdeedcd32377fe942ac34f061927ca2e5a02be473
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