Il giorno 05/ago/2011, alle ore 12:50, Cal Leeming [Simplicity Media Ltd] ha 
scritto:

> Hi Roberto,
> 
> It happened again:
> 
> Traceback:
> Traceback (most recent call last):
> 
>   File 
> "/home/simplicitymedialtd/webapps/cdn05.prod/src/webapp/queue/models.py", 
> line 289, in getURL
>     f = 
> urllib.urlopen("http://www.spankwire.com/Player/VideoXML.aspx?id=%s"%self.videoid)
> 
>   File "/usr/local/lib/python2.7/urllib.py", line 84, in urlopen
>     return opener.open(url)
> 
>   File "/usr/local/lib/python2.7/urllib.py", line 205, in open
>     return getattr(self, name)(url)
> 
>   File "/usr/local/lib/python2.7/urllib.py", line 342, in open_http
>     h.endheaders(data)
> 
>   File "/usr/local/lib/python2.7/httplib.py", line 940, in endheaders
>     self._send_output(message_body)
> 
>   File "/usr/local/lib/python2.7/httplib.py", line 803, in _send_output
>     self.send(msg)
> 
>   File "/usr/local/lib/python2.7/httplib.py", line 755, in send
>     self.connect()
> 
>   File "/usr/local/lib/python2.7/httplib.py", line 736, in connect
>     self.timeout, self.source_address)
> 
>   File "/usr/local/lib/python2.7/socket.py", line 551, in create_connection
>     for res in getaddrinfo(host, port, 0, SOCK_STREAM):
> 
> IOError: [Errno socket error] [Errno -3] Temporary failure in name resolution
> 
> Fri Aug  5 04:20:10 2011 - writev(): Broken pipe 
> [plugins/python/wsgi_headers.c line 182]
> Fri Aug  5 04:20:11 2011 - write(): Broken pipe 
> [plugins/python/wsgi_subhandler.c line 189]
> Fri Aug  5 04:21:28 2011 - writev(): Broken pipe 
> [plugins/python/wsgi_headers.c line 182]
> Fri Aug  5 04:21:28 2011 - write(): Broken pipe 
> [plugins/python/wsgi_subhandler.c line 189]
> Fri Aug  5 04:21:28 2011 - writev(): Broken pipe 
> [plugins/python/wsgi_headers.c line 182]
> Fri Aug  5 04:21:28 2011 - write(): Broken pipe 
> [plugins/python/wsgi_subhandler.c line 189]
> Fri Aug  5 04:21:28 2011 - writev(): Broken pipe 
> [plugins/python/wsgi_headers.c line 182]
> Fri Aug  5 04:21:28 2011 - write(): Broken pipe 
> [plugins/python/wsgi_subhandler.c line 189]
> 
> It happened shortly after a urllib() call.
> 
> urllib() has sometimes been known to block the GIL when it's stuck in 
> 'resolving' or certain tcp states. It could also be, that because urllib() 
> was taking a long time to return back a result, all the workers became busy, 
> and uwsgi was no longer able to handle the request. If this is the case, 
> uWSGI should log this as "workers are busy, rejecting request" or something 
> like that.


Yes, it should but you have configured 120 seconds of harakiri, so it will not 
consider a worker "bad" until it is blocked for more than 120 seconds :)

What about setting a tiny timeout in urllib ? (3-4 seconds should be enough)


--
Roberto De Ioris
http://unbit.it
JID: [email protected]

_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to