From fec74f1d8874c17fab820f3a3cc92c6b46d1e0cc Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Mon, 13 Dec 2021 01:15:19 -0500 Subject: [PATCH] mds: ignore unknown client op when tracking op latency Server::handle_client_request() ignores unknown client operation by returning -ENOTSUPP, however, Server::perf_gather_op_latency() aborts on unknown client op, thereby causing -ENOTSUPP to never reach the client. ceph_abort() seems unnecessary here. Note, we could have invoked Server::perf_gather_op_latency() when the return value to client is not -ENOTSUPP, however, a valid client operation *might* just return -ENOTSUPP in some cases. @mchangir ran into this with his getvxattr op changes (PR #42001). Signed-off-by: Venky Shankar (cherry picked from commit 2f4060b8c41004d10d9a64676ccd847f6e1304dd) --- src/mds/Server.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 4100043164036..bee70ea44bde5 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2009,7 +2009,9 @@ void Server::perf_gather_op_latency(const cref_t &req, utime_t l case CEPH_MDS_OP_RENAMESNAP: code = l_mdss_req_renamesnap_latency; break; - default: ceph_abort(); + default: + dout(1) << ": unknown client op" << dendl; + return; } logger->tinc(code, lat); } -- 2.39.5