2017-10-03 2 views
0

Ich benutze Sanic (Python) als Webserver und ein Problem mit einigen der Anfragen. Es gibt einen Fehler, wenn wir einige gleichzeitige Anfragen erhalten. Die Fehlerbeschreibung ist wie folgt:(sanic) [FEHLER]: Verbindung verloren, bevor die Antwort geschrieben

web_1 | 2017-10-03 09:24:49 - (network)[INFO][172.17.0.1:55372]: GET http://localhost:8000/api/order_items/123456 200 38 
web_1 | 2017-10-03 09:24:50 - (network)[INFO][172.17.0.1:55382]: GET http://localhost:8000/api/order_items/123456 200 38 
web_1 | 2017-10-03 09:24:55 - (network)[INFO][172.17.0.1:55392]: GET http://localhost:8000/api/order_items/123456 200 38 
web_1 | 2017-10-03 09:24:56 - (sanic)[ERROR]: Connection lost before response 2343 written @ ('172.17.0.1', 55402) 
web_1 | 2017-10-03 09:24:56 - (network)[INFO][172.17.0.1:55412]: GET http://localhost:8000/api/order_items/123456 200 38 
web_1 | 2017-10-03 09:24:57 - (sanic)[ERROR]: Connection lost before response 2343 written @ ('172.17.0.1', 55424) 
web_1 | 2017-10-03 09:24:57 - (network)[INFO][172.17.0.1:55430]: GET http://localhost:8000/api/order_items/123456 200 38 

Dies ist, wo Sanic diesen Fehler meldet: https://github.com/channelcat/sanic/blob/master/sanic/server.py#L333

So wie pro mein Verständnis, schließt HTTP-Verbindung vor Sanic kann es schreiben was in Ordnung ist, aber ich sollte in der Lage sein, das Verhalten zu überschreiben und den Fehler zu verstecken, wenn ich was benötige, brauche ich Hilfe mit

Antwort

0

Deaktivieren Sie den Debug-Modus (Sie sollten, wenn Sie in Produktion sind) und die Fehlermeldung wird verschwinden.

+0

Nr die Fehlermeldung aktiviert, da der Debug nicht kommen würde. Sie können in den Protokollen sehen, es ist als Fehler klassifiziert. Ich hatte jedoch einen Patch installiert, um das Problem zu beheben. Ich werde diese Antwort posten. – Aqee

0

Das Problem wurde in Sanic dauerhaft behoben, aber es wurde noch nicht veröffentlicht. Also hier ist eine temporäre Lösung, bis Sanic 0.6.1 veröffentlicht.

class NoConnectionLostFilter(logging.Filter): 
""" while issue not resolved https://github.com/channelcat/sanic/issues/959 """ 
def filter(record): 
    return not record.getMessage().startswith('Connection lost before response written') 

logging.getLogger('root').addFilter(NoConnectionLostFilter) 

Lösung Credits: https://github.com/samael500 Github Ausgabe Link: https://github.com/channelcat/sanic/issues/959

Verwandte Themen