From: Dan van der Ster Date: Tue, 15 Feb 2022 15:36:40 +0000 (+0100) Subject: Monitor: forward report command to leader X-Git-Tag: v17.2.6~463^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2dce6b3e2f613bd3085c290d3aab000c19f8b199;p=ceph.git Monitor: forward report command to leader 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 (cherry picked from commit ae04ea5fb9c5cb8d252d3cd043bce4cde647790c) --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index ac6d6632c39a..cc7cfa3d869e 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -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"));