Do not try to bind to v2 addresses until all of the mons will know what
we are doing and will be able to advertise those addresses.
This avoids the possibility of corner cases where we bind to one thing
but advertise something different via the various cluster maps.
Signed-off-by: Sage Weil <sage@redhat.com>
monmap.print(*_dout);
*_dout << dendl;
+ if (monmap.get_epoch() > 0 &&
+ !monmap.get_required_features().contains_all(
+ ceph::features::mon::FEATURE_NAUTILUS) &&
+ cct->_conf.get_val<bool>("ms_bind_msgr2")) {
+ ldout(cct,1) << " disabling ms_bind_msgr2 because monmap does not have"
+ << " NAUTILUS feature set" << dendl;
+ cct->_conf.set_val("ms_bind_msgr2", "false");
+ }
+
if (old_name.size() == 0) {
ldout(cct,10) << " can't identify which mon we were connected to" << dendl;
_reopen_session();