]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon/Monitor: do not join cluster that is >2 releases old
authorSage Weil <sage@redhat.com>
Fri, 8 Feb 2019 21:12:57 +0000 (15:12 -0600)
committerSage Weil <sage@redhat.com>
Wed, 13 Feb 2019 17:46:45 +0000 (11:46 -0600)
commitb046c897e5c7c311fc37bd5b0aed17ab28061e02
tree85f660cae89ed8b77a7ebf8e77e5b5ff1ea17c52
parent3cb865e62a0d2437dc700b6716ea5b717e6d1be3
mon/Monitor: do not join cluster that is >2 releases old

This enforces the N+2 upgrade rule from the mon's perspective.

Note that this safety check is not as safe as the OSDs.  Notably, we
start up our backend store (rocksdb) *before* we probe other monitors
and discover any newer monmap that tells us we shouldn't join.  If there
is a *rocksdb* backward-compatibility problem it is too late by this
point.  Unfortunately, I don't see an easy way to get this far before
rocksdb is read-write--not without a lot more code, at least!

However, we'll still protect against a whole class of other potential
problems by not getting involved in a cluster that is too old.  :)

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/Monitor.cc