]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: process map before notifying clients 57064/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:27:33 +0000 (14:27 -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 5bd2ffb246c74b8499125fa6d0a44a23f87a5d0c..b320ea484be673c01a2394003e055dd5b0bc4fb8 100644 (file)
@@ -588,16 +588,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