2014-06-10 26 views
9

Mentre colpire una risorsa REST (my_resource) in Python, il server uWSGI sta gettando il seguente errore nel suo registro:fissaggio errore tubo rotto in uWSGI con Python

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 

Sembra essere collegato con un timeout (il client si è disconnesso prima che la richiesta potesse terminare l'elaborazione).

Che tipo di timeout è questo e come può essere risolto?

risposta

7

dipende dal server di frontend. Ad esempio, nginx ha il parametro uwsgi_read_timeout. (generalmente impostato su 60 secondi). Il router http di uWSGI come valore predefinito --http-timeout è impostato su 60 secondi e così via. Come stai parlando di una pausa API sono abbastanza dubbi che richiede più di 60 secondi per generare una risposta, sei sicuro di non avere qualche intestazione di risposta sbagliata che innesca una connessione vicino al server web frontend?

+0

Sì, ne sono abbastanza sicuro. Vi sono motivi particolari per cui questa singola richiesta richiede più tempo per generare una risposta, che tratteremo quando necessario. Per ora, tuttavia, l'incremento del timeout sembra essere la strada da percorrere. Grazie! –

+0

Ho lo stesso problema e non ho potuto risolverlo in questo modo. Im usando Flask e mi aspetto che la richiesta sia un po 'più grande dato che portano dati audio binari con durata variabile tra 2 secondi e 15 secondi. Anche con piccoli campioni audio che viaggiano nella richiesta continuo a ricevere questo messaggio nel registro degli errori. – lithiumlab

+0

il problema che ho avuto è stato risolto l'aggiornamento di openssl versione 1.0.2g – lithiumlab