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