Broken pipe from gevent/pywsgi.py
Larry Martell
larry.martell at gmail.com
Tue May 3 16:36:22 EDT 2016
I have a python server that has this in the main:
from gevent import pywsgi
try:
httpd = pywsgi.WSGIServer(('0.0.0.0', 8000), app)
httpd.serve_forever()
except KeyboardInterrupt:
pass
Recently we began getting HTTPError: 504 Server Error: Gateway
Time-out on requests to the server. Looking in the logs I saw this:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line
508, in handle_one_response
self.run_application()
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line
495, in run_application
self.process_result()
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line
486, in process_result
self.write(data)
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line
380, in write
self._write_with_headers(data)
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line
400, in _write_with_headers
self._sendall(towrite)
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line
355, in _sendall
self.socket.sendall(data)
File "/usr/local/lib/python2.7/dist-packages/gevent/socket.py", line
460, in sendall
data_sent += self.send(_get_memory(data, data_sent), flags)
File "/usr/local/lib/python2.7/dist-packages/gevent/socket.py", line
437, in send
return sock.send(data, flags)
error: [Errno 32] Broken pipe
{'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_CONNECTION': 'close',
'HTTP_HOST': 'bekku.bbmsc.com',
'HTTP_USER_AGENT': 'python-requests/2.9.1',
'HTTP_X_FORWARDED_FOR': '192.168.10.5',
'HTTP_X_REAL_IP': '192.168.10.5',
'PATH_INFO': '/readings',
'QUERY_STRING': 'target=2225217193085335062&tool=HM',
'REMOTE_ADDR': '172.17.42.1',
'REMOTE_PORT': '41708',
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': '',
'SERVER_NAME': 'fdffcd119506',
'SERVER_PORT': '8000',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SOFTWARE': 'gevent/1.0 Python/2.7',
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f4c299bc1e0>,
'wsgi.input': <gevent.pywsgi.Input object at 0x7f4c19e55210>,
'wsgi.multiprocess': False,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)} failed with error
Once this occurs it seems that no further requests are served. I
googled this and found many places where people said this was
happening, and many places where people explained why it was
happening, but no place did I find a way to fix or workaround this.
Does anyone know how to get it to continue processing after this occurs?
More information about the Python-list
mailing list