]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Monitor: forward report command to leader 51258/head
authorDan van der Ster <daniel.vanderster@cern.ch>
Tue, 15 Feb 2022 15:36:40 +0000 (16:36 +0100)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Thu, 27 Apr 2023 12:23:48 +0000 (19:23 +0700)
The `ceph report` section on `osdmap_clean_epochs` is empty if a peon
responds. Forward this command to the leader.

Fixes: https://tracker.ceph.com/issues/47273
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
(cherry picked from commit ae04ea5fb9c5cb8d252d3cd043bce4cde647790c)

src/mon/Monitor.cc

index 32a2321c96c672f01a4ee7e37f781de62aa56c35..26ea7acd2f59a3e4418a40ddc4412d06f5657572 100644 (file)
@@ -3692,7 +3692,16 @@ void Monitor::handle_command(MonOpRequestRef op)
     rs = "";
     r = 0;
   } else if (prefix == "report") {
-
+    // some of the report data is only known by leader, e.g. osdmap_clean_epochs
+    if (!is_leader() && !is_peon()) {
+      dout(10) << " waiting for quorum" << dendl;
+      waitfor_quorum.push_back(new C_RetryMessage(this, op));
+      return;
+    }
+    if (!is_leader()) {
+      forward_request_leader(op);
+      return;
+    }
     // this must be formatted, in its current form
     if (!f)
       f.reset(Formatter::create("json-pretty"));