]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Monitor: forward report command to leader 47928/head
authorDan van der Ster <daniel.vanderster@cern.ch>
Tue, 15 Feb 2022 15:36:40 +0000 (16:36 +0100)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 2 Sep 2022 16:45:45 +0000 (16:45 +0000)
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 ac6d6632c39a3a1399915aaf66b86e9d1d864e8a..cc7cfa3d869eef44799d4e733ffc63c3f430b9c1 100644 (file)
@@ -3657,7 +3657,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"));