]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Monitor: forward report command to leader 45042/head
authorDan van der Ster <daniel.vanderster@cern.ch>
Tue, 15 Feb 2022 15:36:40 +0000 (16:36 +0100)
committerDan van der Ster <daniel.vanderster@cern.ch>
Tue, 15 Feb 2022 15:36:40 +0000 (16:36 +0100)
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>
src/mon/Monitor.cc

index d647316e9e5c119b1b83e4c2b1923d932f95e622..d1e54d36c7bfa2a59099160a2cb749252f706f16 100644 (file)
@@ -3656,7 +3656,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"));