Fixing broken pipe error in uWSGI with Python

25,734

Solution 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 ?

Solution 2

if you are using the uwsgi nginx plugin, consider using

uwsgi_connect_timeout 180;
uwsgi_read_timeout 180;
uwsgi_send_timeout 180;
Share:
25,734

Related videos on Youtube

Juan Carlos Coto
Author by

Juan Carlos Coto

Updated on July 09, 2022

Comments

  • Juan Carlos Coto
    Juan Carlos Coto almost 2 years

    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?

  • Juan Carlos Coto
    Juan Carlos Coto almost 10 years
    Yes, I'm pretty sure. There are particular reasons why this single request takes longer to generate a response, which we will deal with when necessary. For now, however, incrementing the timeout seems to be the way to go. Thanks!
  • lithiumlab
    lithiumlab about 8 years
    I have the same problem and could not solve it this way. Im using Flask and i expect request being a bit bigger since they bring audio binary data with variable duration between 2secs and 15secs. Even with small audio samples traveling in the request i keep getting thisi message in the error log.
  • lithiumlab
    lithiumlab about 8 years
    the issue i had was fixed upgrading openssl version 1.0.2g
  • user873275
    user873275 over 3 years
    In which file to add these values?
  • Chris Maes
    Chris Maes over 3 years
    inside nginx.conf