]> git.apps.os.sepia.ceph.com Git - ceph-ci.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>
Thu, 19 Jul 2018 05:10:42 +0000 (13:10 +0800)
commit7de9da4a43914082eea0a1f9c8b98ce285e873ef
tree95e909cd6b03b549bf188d228d7ea9d2508e049a
parent326fdd94c916202dd7ca8680d6d271b3d7599b50
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>
src/mds/MDSMap.cc
src/mds/MDSRank.cc