【发布时间】:2013-05-03 23:19:13
【问题描述】:
我今天遇到了一个问题,挂载过时,这导致我的整个 python 应用程序无限期挂起。
发生的事情是挂载过时了,然后我在那条路径上调用了os.path.exists(path)。通话无限期挂起。
我真的需要防止这种情况发生。我唯一的想法是将os.path.exists 调用放在后台线程上,如果在超时几秒后它仍然存在,则突然终止线程(显然不是首选)。理想情况下,我会先打电话检查挂载是否过时来避免这种情况。
有什么想法吗?仅供参考,所有尝试访问此路径的呼叫都挂起,包括os.path.ismount(path)。虽然这是一个罕见的事件,但我不能让我的整个系统冻结在用户身上:/。
【问题讨论】:
-
我已经在一些自定义文件系统(保险丝等)中看到了这种行为。它看起来更像是文件系统实现的问题,当内核询问时它会停止给出答案。我会将问题重新标记为 Linux、内核(如果适用)。
-
这是在 ubuntu 中安装远程 centOS 驱动器(我相信是 nfs)。没有奇怪的文件系统。我们目前正在尝试“软”nfs 挂载选项,但尚未发现挂载会过时以进行测试。