]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
client: try to renew caps and flush old cap releases
authorXiubo Li <xiubli@redhat.com>
Wed, 28 Oct 2020 02:40:15 +0000 (22:40 -0400)
committerXiubo Li <xiubli@redhat.com>
Thu, 12 Nov 2020 01:03:38 +0000 (09:03 +0800)
commita3aa90e9e5a4a570e4ba0c9e9fd3ac47d5c01656
treeb04b25124a925cba91f43ec2a35d6781be0d4c58
parent154830be84c143ce9bc29959655ff55bb1fbdc61
client: try to renew caps and flush old cap releases

For multiple threads case, if there has more than one threads are
waiting the client_lock, which one to be woke up is not determined.
So in worst case the tick() may be stuck for a long time.

When the MDS daemons are out of resources it will recall them and
tell the client to release the caps, so the clients may surge in
receiving thousands of recall_state requests.

Fixes: https://tracker.ceph.com/issues/47842
Signed-off-by: Xiubo Li <xiubli@redhat.com>
src/client/Client.cc
src/client/Client.h