2011-12-26 8 views
6

मेरे पास एक लंबी चल रही पायथन लिपि है, जिसे अपस्टार्ट के साथ लॉन्च किया गया है। यह स्क्रिप्ट काफी अनुरोध करता है। सब कुछ पहली बार में अच्छी तरह से काम, फिर भी कुछ घंटों के बाद मैं स्थायी रूप से प्रत्येक अनुरोध के लिए निम्न त्रुटि हो रही शुरू:कुछ घंटों के लिए चलने के बाद स्थायी गियरर 'नाम समाधान में अस्थायी विफलता'

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 

यह नाम संकल्प या DNS के साथ एक समस्या नहीं है, क्योंकि इस समस्या को आवेदन सुधारों की एक साधारण पुनः आरंभ ।

मैंने दोनों पायथन 2.6 एक 2.7 की कोशिश की है और वही स्थिति होती है।

मैं चल रहा हूँ Linux 2.6.35-30-virtual #61-Ubuntu SMP Tue Oct 11 18:26:36 UTC 2011 x86_64 GNU/Linux

इस समस्या से कुछ पोस्ट नहीं किया गया है, लेकिन एक सीधा स्पष्टीकरण या समाधान के साथ कोई भी:

उत्तर

1

मैं ऐसा लगता है कि जब आप "बहुत खुली फाइलें" स्थिति में आते हैं तो ऐसा होता है। अगली बार ऐसा होता है, यह देखने का प्रयास करें कि आपकी स्क्रिप्ट कितनी फ़ाइल डिस्क्रिप्टर खुली है।

+0

हाल ही में यह हो रही किया गया, पूरे सिस्टम भर में केवल 394 फ़ाइल वर्णनकर्ता खुला ('lsof | WC -l')। – Endophage

0

मूल कारण यह है कि /etc/resolv.conf केवल पायथन स्टार्टअप पर पढ़ा जाता है। संकल्प तालिका की एक ताज़ा मजबूर करने के लिए, आप (लिनक्स पर) इस चला सकते हैं:

import ctypes 
libc = ctypes.cdll.LoadLibrary('libc.so.6') 
res_init = libc.__res_init 
res_init() 
+0

कृपया एक ही प्रश्न को कई प्रश्नों पर पोस्ट न करें। यदि वही जानकारी वास्तव में दोनों प्रश्नों का उत्तर देती है, तो एक प्रश्न (आमतौर पर नया) दूसरे के डुप्लिकेट के रूप में बंद होना चाहिए। आप इसे [डुप्लिकेट के रूप में बंद करने के लिए वोटिंग] द्वारा इंगित कर सकते हैं (http://stackoverflow.com/help/privileges/close-questions) या, यदि आपके पास इसके लिए पर्याप्त प्रतिष्ठा नहीं है, [ध्वज उठाएं] (http://stackoverflow.com/help/privileges/flag-posts) यह इंगित करने के लिए कि यह एक डुप्लिकेट है। अन्यथा, सुनिश्चित करें कि आप * इस * प्रश्न का उत्तर दें और एक ही उत्तर को कई स्थानों पर पेस्ट न करें। –

संबंधित मुद्दे