在运行几个小时后,永久性的gaierror"名称解析暂时失败"

lip*_*pka 6 python urllib httplib python-sockets getaddrinfo

我有一个长期运行的python脚本,与upstart一起启动.这个脚本提出了很多请求.一切都运行良好,但几个小时后我开始永久性地为每个请求得到以下错误:

  File "/opt/a/a-env/local/lib/python2.7/site-packages/atom/client.py", line 119, in request
  File "/opt/a/a-env/local/lib/python2.7/site-packages/atom/http_core.py", line 420, in request
  File "/opt/a/a-env/local/lib/python2.7/site-packages/atom/http_core.py", line 489, in _http_request
  File "/usr/lib/python2.7/httplib.py", line 931, in endheaders
  File "/usr/lib/python2.7/httplib.py", line 794, in _send_output
  File "/usr/lib/python2.7/httplib.py", line 756, in send
  File "/usr/lib/python2.7/httplib.py", line 1134, in connect
  File "/usr/lib/python2.7/socket.py", line 553, in create_connection
gaierror: [Errno -3] Temporary failure in name resolution
Run Code Online (Sandbox Code Playgroud)

这不是名称解析或DNS的问题,因为简单的应用程序重新启动可以解决此问题.

我已经尝试了Python 2.6 a 2.7并且出现了同样的情况.

我在跑 Linux 2.6.35-30-virtual #61-Ubuntu SMP Tue Oct 11 18:26:36 UTC 2011 x86_64 GNU/Linux

有一些帖子有这个问题,但没有一个有简单的解释或解决方案:

tsg*_*tsg 1

我认为当您遇到“打开文件太多”的情况时就会发生这种情况。下次发生这种情况时,请尝试查看脚本打开了多少个文件描述符。