From: Jos Collin Date: Tue, 3 Aug 2021 13:07:00 +0000 (+0530) Subject: pybind/mgr/stats: check if cmdtag is a valid key in client_metadata X-Git-Tag: v17.1.0~1180^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F42608%2Fhead;p=ceph.git 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 --- 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(