web-dev-qa-db-ja.com

Python)を使用してuWSGIの壊れたパイプエラーを修正

RESTリソース(my_resource)Pythonでは、uWSGIサーバーはログに次のエラーをスローします。

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

タイムアウト(リクエストの処理が完了する前にクライアントが切断された)に関連しているようです。

これはどのようなタイムアウトであり、どのように修正できますか?

15

フロントエンドサーバーによって異なります。たとえば、nginxにはuwsgi_read_timeoutパラメーターがあります。 (通常は60秒に設定されます)。 --http-timeoutとしてのuWSGIhttpルーターのデフォルトは60秒などです。あなたがRESTAPIについて話しているので、応答を生成するのに60秒以上かかるのではないかと疑っていますが、フロントエンドWebサーバーによって接続を閉じるトリガーとなる間違った応答ヘッダーがないことを確認しますか?

9
roberto