]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: process map before notifying clients 57065/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:08 +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 cb988cf761cc20e7f5b4f9b00fa546f8f1d25fa1..7fe93d745b593e564bfbaa8b7c05a6e86e12dce1 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