在运行数小时后永久“名称解析暂时失败”

时间:2011-12-02 12:45:06

标签: python urllib2 httplib

在Linux上运行了几个小时后,使用urllib2,httplib和线程的Python 2.6程序开始针对每个请求引发此错误:

<class 'urllib2.URLError'> URLError(gaierror(-3, 'Temporary failure in name resolution'),)

如果我重新启动程序,它会重新开始工作。我的猜测是某种资源枯竭但我不知道如何检查它。我该如何诊断并解决问题?

2 个答案:

答案 0 :(得分:12)

这是由于库无法关闭连接导致大量连接陷入CLOSE_WAIT状态。最终,由于资源耗尽,这会导致“名称解析暂时失败”错误。

答案 1 :(得分:0)

遇到了同样的问题,在我的情况下它没有资源耗尽,我的问题发生在我的dhcp服务器更改了nameserver地址时,libc不想玩球并重新加载新的resolv.conf文件,维护缓存一,并强制我每次更改时重新启动脚本。

此后我的所有python套接字连接都尝试失败,所以我发现this code解决了这种情况:

{{1}}

在调用socket.connect之前使用它,希望这有帮助