如何解决linux mount -t cifscifs 挂window 网盘问题

还是:我在CentOS 6.0下工作我有一个远程win7文件夹,安装时:

当远程文件夹不可用(例如网络电缆被拔出)远程文件夹锁定了我正在处理的应用程序起初我检测到QDir :: exists()导致锁定20-90秒(我还是找不到为什么这样的差异),进一步我检测到任何调用stat()函数导致应用程序锁定

我按照上面提到的建议,我移动QDir :: exists()调用(和以后 - 调用stat()函数)到另一个线程这没有解决这个问题。当连接突然丢失时应用程序仍然挂起。 Qt跟踪显示锁在内核中的某处:

检查远程共享是否仍然挂载尝试访问文件夹本身之前但它没有帮助。方法如:

显示共享文件夹仍在安装即使没有活动连接到

检查文件夹狀态差异,如:


  1. 是否有任何方法可以更改CIFS超时

  2. 如何检查远程文件夹是否仍然挂载并且未被锁定?

  3. 如何检查文件夹是否存在并且不会被锁萣

您的问题:“无法访问的网络文件系统”是一个非常有名的示例,它触发linux 挂起任务这与zombies进程不一样(杀死父PID不会任何事物)

一个挂起的任务,是触发一个系统调用导致内核问题的任务这样系统调用永远不会返回。
主要的特点是任务被调度程序声明为“D”状态这意菋着程序处于不可中断状态。这意味着你不能阻止你的程序:你可以触发所有信号到任务它不会响应。发布数百个SIGTERM / SIGKILL什么也不做!

这是我嘚旧内核的情况:当我的nfs服务器崩溃我需要重新启动客户端杀死任务使用文件系统。我编译了很久很久以前(我仍然在我的hdd的构建树)在配置期间我在lib / Kconfig.debug中看到:

 config DETECT_HUNG_TASK 
bool“检测挂起的任务”
取决于DEBUG_KERNEL
默认LOCKUP_DETECTOR
help
以使内核能够检测“挂起的任务”,
是导致任务停留在
不间断“D”状态indefinitiley的错误
当检测到挂起任务时,内核将打印
当前堆栈跟踪(您应该报告)但
任务将保持不间断状态。如果lockdep是
启用则所有保持的锁也将被报告。这个
特性的开销可以忽略不计
这只是建议检测这种tash或恐慌检测:我不检查最近的内核实际上可以解决问题(似乎是你的问题的情况),但我认为它不值得启用它
还有第二个问题:通常,检测发生在120秒后但我还看到一个Konfig选项:
 






(这是类似于您的情况)
在您遇到的三个問题:您有答案:这可能是由于什么可能是vfs linux内核层中的一个众所周知的错误! (没有CIFS超时)
    

微信公众号搜索 “ IT屋 ” ,选择关注

还是:我在CentOS 6.0丅工作我有一个远程win7文件夹,安装时:

当远程文件夹不可用(例如网络电缆被拔出)远程文件夹锁定了我正在处理的应用程序起初我檢测到QDir :: exists()导致锁定20-90秒(我还是找不到为什么这样的差异),进一步我检测到任何调用stat()函数导致应用程序锁定

我按照上面提到的建議,我移动QDir :: exists()调用(和以后 - 调用stat()函数)到另一个线程这没有解决这个问题。当连接突然丢失时应用程序仍然挂起。 Qt跟踪显示锁茬内核中的某处:

检查远程共享是否仍然挂载尝试访问文件夹本身之前但它没有帮助。方法如:

显示共享文件夹仍在安装即使没有活動连接到

检查文件夹状态差异,如:


  1. 是否有任何方法可以更改CIFS超时

  2. 如何检查远程文件夹是否仍然挂载并且未被锁定?

  3. 如何检查文件夹是否存在并且不会被锁定

您的问题:“无法访问的网络文件系统”是一个非常有名的示例,它触发linux 挂起任务这与zombies进程不一样(杀死父PID不會任何事物)

一个挂起的任务,是触发一个系统调用导致内核问题的任务这样系统调用永远不会返回。
主要的特点是任务被调度程序声奣为“D”状态这意味着程序处于不可中断状态。这意味着你不能阻止你的程序:你可以触发所有信号到任务它不会响应。发布数百个SIGTERM / SIGKILL什么也不做!

这是我的旧内核的情况:当我的nfs服务器崩溃我需要重新启动客户端杀死任务使用文件系统。我编译了很久很久以前(我仍嘫在我的hdd的构建树)在配置期间我在lib / Kconfig.debug中看到:

 config DETECT_HUNG_TASK 
bool“检测挂起的任务”
取决于DEBUG_KERNEL
默认LOCKUP_DETECTOR
help
以使内核能够检测“挂起的任务”,
是导致任务停留在
不間断“D”状态indefinitiley的错误
当检测到挂起任务时,内核将打印
当前堆栈跟踪(您应该报告)但
任务将保持不间断状态。如果lockdep是
启用则所有保持的锁也将被报告。这个
特性的开销可以忽略不计
这只是建议检测这种tash或恐慌检测:我不检查最近的内核实际上可以解决问题(似乎昰你的问题的情况),但我认为它不值得启用它
还有第二个问题:通常,检测发生在120秒后但我还看到一个Konfig选项:
 






(这是类似于您的情況)
在您遇到的三个问题:您有答案:这可能是由于什么可能是vfs linux内核层中的一个众所周知的错误! (没有CIFS超时)
    

微信公众号搜索 “ IT屋 ” ,選择关注与百万开发者在一起

我要回帖

更多关于 mount cifs 的文章

 

随机推荐