我在启用缓存的 red hat5.4 NFSv3 上收到 python errno.ESTALE 错误。
我查了一下发现:
“当句柄引用的文件或目录被另一台主机删除时,文件句柄就会变得陈旧,而您的客户端仍然持有对该对象的活动引用。典型示例发生在进程的当前目录时,在您的客户端上运行,在服务器上被删除(通过在服务器上运行的进程或在另一个客户端上)。”
我发现如果你 chown 或 listdir 等,你可以刷新缓存,因此它不会过时,但这个方法对我不起作用。
有人有其他解决方案吗?
我在启用缓存的 red hat5.4 NFSv3 上收到 python errno.ESTALE 错误。
我查了一下发现:
“当句柄引用的文件或目录被另一台主机删除时,文件句柄就会变得陈旧,而您的客户端仍然持有对该对象的活动引用。典型示例发生在进程的当前目录时,在您的客户端上运行,在服务器上被删除(通过在服务器上运行的进程或在另一个客户端上)。”
我发现如果你 chown 或 listdir 等,你可以刷新缓存,因此它不会过时,但这个方法对我不起作用。
有人有其他解决方案吗?
我假设这是 NFS,并且您正在 Linux 上运行客户端。您应该尝试重新挂载您的 NFS 文件系统。
像这样:
$ mount -o remount [your filesystem]
您也可以尝试按照您提到的那样刷新缓存。
# To free pagecache
$ echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes
$ echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes
$ echo 3 > /proc/sys/vm/drop_caches