From: Sage Weil Date: Thu, 18 Mar 2021 15:40:42 +0000 (-0500) Subject: mgr: tell monc when we get new servicemap, fsmap X-Git-Tag: v15.2.16~59^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c957a334aa466c39506f721205f626f44b405a03;p=ceph.git mgr: tell monc when we get new servicemap, fsmap Otherwise, when we re-subscribe we'll request an old map again. In the case of the servicemap, that can lead to a failed assertion. Fixes: https://tracker.ceph.com/issues/48022 Signed-off-by: Sage Weil (cherry picked from commit 3dbc1f0578d944217ad2bacb58ef561e678abb6c) --- diff --git a/src/mgr/Mgr.cc b/src/mgr/Mgr.cc index e90db3119b6e..18ea0e98132f 100644 --- a/src/mgr/Mgr.cc +++ b/src/mgr/Mgr.cc @@ -515,6 +515,7 @@ void Mgr::handle_log(ref_t m) void Mgr::handle_service_map(ref_t m) { dout(10) << "e" << m->service_map.epoch << dendl; + monc->sub_got("servicemap", m->service_map.epoch); cluster_state.set_service_map(m->service_map); server.got_service_map(); } @@ -589,9 +590,10 @@ void Mgr::handle_fs_map(ref_t m) ceph_assert(ceph_mutex_is_locked_by_me(lock)); std::set names_exist; - const FSMap &new_fsmap = m->get_fsmap(); + monc->sub_got("fsmap", m->epoch); + fs_map_cond.notify_all(); // TODO: callers (e.g. from python land) are potentially going to see