]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: process map before notifying clients 57066/head
authorPatrick Donnelly <pdonnell@redhat.com>
Thu, 7 Mar 2024 18:37:15 +0000 (13:37 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Tue, 23 Apr 2024 18:28:32 +0000 (14:28 -0400)
Oddly the maps are processed after notifying the modules. I'm not sure if this
actually can cause modules to read from the old maps (since finisher contexts
are queued) but it seemed odd.

Fixes: https://tracker.ceph.com/issues/64799
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 190f37978f72493ed34f02e919d9b89c405d0962)

src/mgr/Mgr.cc

index b3d710f31abfae8680e8f76af6929f9f86cb48f3..93183144e8e215cafb4b098b2999e4f1dd8c52a3 100644 (file)
@@ -615,16 +615,16 @@ bool Mgr::ms_dispatch2(const ref_t<Message>& m)
       handle_mgr_digest(ref_cast<MMgrDigest>(m));
       break;
     case CEPH_MSG_MON_MAP:
+      /* MonClient passthrough of MonMap to us */
+      handle_mon_map(); /* use monc's monmap */
       py_module_registry->notify_all("mon_map", "");
-      handle_mon_map();
       break;
     case CEPH_MSG_FS_MAP:
-      py_module_registry->notify_all("fs_map", "");
       handle_fs_map(ref_cast<MFSMap>(m));
+      py_module_registry->notify_all("fs_map", "");
       return false; // I shall let this pass through for Client
     case CEPH_MSG_OSD_MAP:
       handle_osd_map();
-
       py_module_registry->notify_all("osd_map", "");
 
       // Continuous subscribe, so that we can generate notifications