From 45a9bfd3055343ba6cad4d296e664d166b4e1a92 Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Fri, 11 Aug 2023 04:36:52 -0400 Subject: [PATCH] mds: blocklist clients with "bloated" session metadata Buggy clients (or maybe a MDS bug) causes a huge buildup of `completed_requests` metadata in its session information. This could cause the MDS to go read-only when its flushing session metadata to the journal since the bloated metadata causes the ODSOp payload to exceed the maximum write size. Blocklist such clients so as to allow the MDS to continue servicing requests. Fixes: http://tracker.ceph.com/issues/61947 Signed-off-by: Venky Shankar (cherry picked from commit bc6814d72a9fbec9c41ed75aee2314666cfca34b) Conflicts: src/common/options/mds.yaml.in src/mds/MDSRank.cc Pacific uses old-style config file (src/common/options.cc), so adjust to that. --- src/common/options.cc | 7 +++- src/mds/MDSRank.cc | 1 + src/mds/SessionMap.cc | 75 ++++++++++++++++++++++++++++++++++--------- src/mds/SessionMap.h | 7 +++- 4 files changed, 73 insertions(+), 17 deletions(-) diff --git a/src/common/options.cc b/src/common/options.cc index 3dd1a7f73e88a..6f1cec24cc843 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -9030,8 +9030,13 @@ std::vector