]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
msg: add alternate statuses for ms_dispatch2 handling
authorPatrick Donnelly <pdonnell@ibm.com>
Tue, 18 Feb 2025 17:41:52 +0000 (12:41 -0500)
committerPatrick Donnelly <pdonnell@ibm.com>
Mon, 17 Mar 2025 19:43:22 +0000 (15:43 -0400)
commit7607633db942f79bb2d489ac207b452f41206d41
tree99dc59e806c5b78aea4377a8eeebf8f3f6a7ab15
parent61f1b204874e9f5684a0f6abd1fe9a43ef3ef711
msg: add alternate statuses for ms_dispatch2 handling

Many dispatchers return false to allow other dispatchers also common messages
like MOSDMap or MFSMap. They implicitly depend on some dispatcher which is
always at the "tail" of the dispatcher queue to return "true" indicating the
msg was processed to avoid messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

but this cannot always happen when some libraries like the RadosClient used standalone.

So, add a variant for encapsulating other indications for how the message was
processed by dispatch2.  For example, a message may be "acknowledged" but
explicitly allow other dispatchers to try processing the message.

Note: we're using a variant to avoid updating all of the ms_dispatch code to
use the sentinel classes.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit c9d0913f53b0c4d632746075c05c2f2187d77c02)

Conflicts:
src/nvmeof/NVMeofGwMonitorClient.cc: not present in squid
src/nvmeof/NVMeofGwMonitorClient.h: not present in squid
20 files changed:
src/client/Client.cc
src/client/Client.h
src/mds/Beacon.cc
src/mds/Beacon.h
src/mds/MDSDaemon.cc
src/mds/MDSDaemon.h
src/mds/MetricAggregator.cc
src/mds/MetricAggregator.h
src/mds/MetricsHandler.cc
src/mds/MetricsHandler.h
src/mgr/DaemonServer.cc
src/mgr/DaemonServer.h
src/mgr/MgrClient.cc
src/mgr/MgrClient.h
src/mgr/MgrStandby.cc
src/mgr/MgrStandby.h
src/msg/Dispatcher.h
src/msg/Messenger.h
src/tools/cephfs_mirror/ClusterWatcher.cc
src/tools/cephfs_mirror/ClusterWatcher.h