2010-11-21 8 views
5

हो रही है मैं अपने उत्पादन सर्वर पर अपने आवेदन चला रहा हूँ और यह मेरे इस त्रुटि दे रहा है:एक अनूठा URLError: <urlopen त्रुटि का समय समाप्त हो> त्रुटि मैं

File "/usr/lib/python2.6/urllib2.py", line 391, in open 
    response = self._open(req, data) 

File "/usr/lib/python2.6/urllib2.py", line 409, in _open 
    '_open', req) 

File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain 
    result = func(*args) 

File "/usr/lib/python2.6/urllib2.py", line 1161, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 

File "/usr/lib/python2.6/urllib2.py", line 1136, in do_open 
    raise URLError(err) 

URLError: <urlopen error timed out> 

BTW मैं समझता हूँ error। लेकिन यह दिलचस्प नहीं है। दिलचस्प हिस्सा यह है कि जब मैं इसे अपने local machine or test server पर चलाता हूं तो हर चीज बढ़िया काम कर रही है। यह बहुत परेशान है।

हर जहां मैं एक ही ओएस का उपयोग कर रहा:

ubuntu 10.04 

क्या संभावित कारण हो सकता है? किसी भी तरह की सहायता को आभार समझेंगे।

उत्तर

1

क्या आप अपने उत्पादन सर्वर पर wget के साथ प्रश्न में यूआरएल पुनर्प्राप्त कर सकते हैं? यह एक पायथन बग की बजाय फ़ायरवॉल समस्या हो सकती है।

+0

उत्पादन सर्वर पर उस यूआरएल पर wget काम करना – scoparta

0

ऐसा लगता है कि उत्पादन मशीन उत्पादन प्रणाली पर कम-प्रावधान या अतिरिक्त भार के कारण शायद आपके परीक्षण या स्थानीय मशीनों से काफी अधिक समय ले रही है, इसलिए आपको यह जांचना चाहिए कि आप जानते हैं कि आपका टाइमआउट क्या है और आप नहीं हैं गलती से ग्लोबल टाइमआउट को आक्रामक रूप से स्थापित नहीं कर रहा है।

यह शायद socket.setdefaulttimeout/socket.settimeout के साथ एक समस्या है। Urllib2.urlopen को कॉल को Python2.6 में टाइमआउट तर्क स्वीकार करना चाहिए। Urllib2.urlopen (..., टाइमआउट = कोई नहीं) आज़माएं और देखें कि क्या चीजें हल करती हैं।

मैं आपके urlopen कॉल करने से पहले socket.getdefaulttimeout के मान की पुष्टि भी करूंगा।

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