Fixing broken pipe error in uWSGI with Python

别说谁变了你拦得住时间么 提交于 2019-12-12 07:47:03

问题


While hitting a REST resource (my_resource) in Python, the uWSGI server is throwing the following error in its log:

SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request my_resource (ip <my_ip>) !!!
uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 164]
IOError: write error

It seems to be related to a timeout (the client disconnected before the request could finish processing).

What sort of timeout is this and how can it be fixed?


回答1:


it depends on your frontend server. For example nginx has the uwsgi_read_timeout parameter. (generally set to 60 seconds). The uWSGI http router as the --http-timeout default to 60 seconds and so on. As you are talking about a rest api i am quite doubtful it requires more than 60 seconds to generate a response, are you sure you do not have some wrong response header triggering a connection close by the frontend webserver ?




回答2:


if you are using the uwsgi nginx plugin, consider using

uwsgi_connect_timeout 180;
uwsgi_read_timeout 180;
uwsgi_send_timeout 180;


来源:https://stackoverflow.com/questions/24133315/fixing-broken-pipe-error-in-uwsgi-with-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!