From: Xiubo Li Date: Mon, 29 Jul 2024 06:20:41 +0000 (+0800) Subject: client: flush the caps release in filesystem sync X-Git-Tag: v20.0.0~1256^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b5bfc4526a2eb242ee580f6908bd9a980a5cf51c;p=ceph.git client: flush the caps release in filesystem sync We have hit a race between cap releases and cap revoke request that will cause the check_caps() to miss sending a cap revoke ack to MDS. And the client will depend on the cap release to release that revoking caps, which could be delayed for some unknown reasons. In Kclient we have figured out the RCA about race and we need a way to explictly trigger this manually could help to get rid of the caps revoke stuck issue. Fixes: https://tracker.ceph.com/issues/67221 Signed-off-by: Xiubo Li --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 5f78e73f92224..43ec05b6b8dcc 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -12860,6 +12860,8 @@ int Client::_sync_fs() // flush the mdlog before waiting for unsafe requests. flush_mdlog_sync(); + flush_cap_releases(); + // wait for unsafe mds requests wait_unsafe_requests();