From ae04ea5fb9c5cb8d252d3cd043bce4cde647790c Mon Sep 17 00:00:00 2001 From: Dan van der Ster Date: Tue, 15 Feb 2022 16:36:40 +0100 Subject: [PATCH] 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 --- src/mon/Monitor.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index d647316e9e5c1..d1e54d36c7bfa 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -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")); -- 2.39.5