lstat()阻塞15分钟

时间:2016-02-05 17:49:07

标签: linux windows

当我打开/保存文件时,我的Linux(Fedora)机器在大约15分钟内没有响应。我调查过,它与/ mnt中的Windows安装目录有关。我可以用一个简单的'ls -al / mnt'来重现。所有后续的ls命令都会快速返回。一段时间后出现同样的问题,我被迫再休息15分钟......

strace和ltrace都指向lstat():

# strace
13:37:22 lstat("/mnt/Todo-Dino", 0x211ce40) = -1 EHOSTDOWN (Host is down)
13:52:24 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

# ltrace
13:37:22 __lxstat(1, "/mnt/Todo-Dino", 0x01e1ee40)                                             = -1
13:52:24 dcgettext(0, 0x4120ce, 5, 0, 0x1e24850)

mnt$ ls -al
ls: cannot access Todo-Dino: Host is down
total 40
d????????? ? ?    ?       ?            ? Todo-Dino

安装在/ mnt / Todo-Dino上面的Windows机器并没有像报道的那样真正下降。即使它会下降,15分钟是相当长的等待......

15分钟后,目录按预期显示:

mnt$ ls -al
drwxrwxrwx   2 root root 12288 Feb  4 12:36 Todo-Dino

fstab有:

//192.168.1.1/Todo                      /mnt/Todo-Dino          cifs    username=XXX,password=XXX,file_mode=0777,dir_mode=0777,auto,users 0 0

知道如何解决这个问题吗?从哪里神奇的15分钟延迟?

感谢。

1 个答案:

答案 0 :(得分:1)

我没有深究这个问题,但至少有一个简单的治疗方法。类似于在类似线程上建议的内容,每隔5分钟就会列出/ mnt的列表。可能经常但谁在乎呢?现在使用机器时没有强迫15分钟的休息时间!

    * * * * /bin/ls -al /mnt > /dev/null 2>&1
    5 * * * * /bin/ls -al /mnt > /dev/null 2>&1
    ...