]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: try to open the ino if couldn't be found in MDCache in all peers
authorXiubo Li <xiubli@redhat.com>
Fri, 1 Apr 2022 14:15:39 +0000 (22:15 +0800)
committerXiubo Li <xiubli@redhat.com>
Wed, 8 Jun 2022 01:54:30 +0000 (09:54 +0800)
commit22b3d293df7408220b80df873abae4638d986495
tree8c53b7e52e4ba0aeb43a2bc13176d36828fc2e55
parent3942eb53d5956599736edc406f34c95de1667e88
mds: try to open the ino if couldn't be found in MDCache in all peers

There has one case that when the MDS crashes and the openfiletable
journal couldn't be flushed and then the replacing MDS is possibly
won't load some already opened CInodes into the MDCache. And if the
clients will retry some requests after reconnected, the MDS will
return -ESTALE after failing to find the ino in all active peers.

As a workaround users can run `ls -R ${mountpoint}` to list all the
sub-files or sub-direcotries from the mountpoint.

We need try to open the ino and try it again.

Fixes: https://tracker.ceph.com/issues/53504
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit c6601bc53ee8f69c6c919b122fea9dab72fc157f)
src/mds/Server.cc
src/mds/Server.h