From 461ea95fda007b41d0ba77195e2de4fa3dea590c Mon Sep 17 00:00:00 2001 From: Jos Collin Date: Tue, 3 Aug 2021 18:37:00 +0530 Subject: [PATCH] pybind/mgr/stats: check if cmdtag is a valid key in client_metadata Invalid cmdtag values ('', foo) are found in random testing and in the qa runs. So check if cmdtag is a valid key in client_metadata. Fixes: https://tracker.ceph.com/issues/51975 Signed-off-by: Jos Collin --- src/pybind/mgr/stats/fs/perf_stats.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pybind/mgr/stats/fs/perf_stats.py b/src/pybind/mgr/stats/fs/perf_stats.py index 23b08cb44e8..09b82a23e22 100644 --- a/src/pybind/mgr/stats/fs/perf_stats.py +++ b/src/pybind/mgr/stats/fs/perf_stats.py @@ -126,7 +126,12 @@ class FSPerfStats(object): def notify(self, cmdtag): self.log.debug("cmdtag={0}".format(cmdtag)) with self.meta_lock: - result = self.client_metadata['in_progress'].pop(cmdtag) + try: + result = self.client_metadata['in_progress'].pop(cmdtag) + except KeyError: + self.log.warn(f"cmdtag {cmdtag} not found in client metadata") + return + client_meta = result[1].wait() if client_meta[0] != 0: self.log.warn("failed to fetch client metadata from rank {0}, err={1}".format( -- 2.39.5