]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: ignore unknown client op when tracking op latency 44291/head
authorVenky Shankar <vshankar@redhat.com>
Mon, 13 Dec 2021 06:15:19 +0000 (01:15 -0500)
committerVenky Shankar <vshankar@redhat.com>
Mon, 3 Jan 2022 08:52:05 +0000 (14:22 +0530)
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 <vshankar@redhat.com>
src/mds/Server.cc

index 0298f3fcc68b285ce95565123229648e72ce4479..a3bf29a06825c6ecfb5e8cee3cef9834c77169e3 100644 (file)
@@ -2063,7 +2063,9 @@ void Server::perf_gather_op_latency(const cref_t<MClientRequest> &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);   
 }