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

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

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

有帮助吗?

解决方案

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

其他提示

遇到同样的问题,在我的情况下,这不是资源耗尽,当我的dhcp服务器更改名称服务器地址,libc不想玩球并重新加载新的resolv.conf文件并维护缓存时,发生了我的问题一个,并迫使我每次更改脚本后都重新启动。

此后,我所有的python套接字连接尝试均失败,因此我发现该代码解决了这种情况: 通用标签

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top