Wie debug "could not receive data from client: Connection reset by peer"
Bin ich mit einem django-celery-Anwendung auf Ubuntu-12.04.
Wenn ich eine Sellerie Aufgabe von meinem web-interface, bekomme ich die folgende Fehlermeldung, form angenommen postgresql-9.3 logfile (Maximalwert der log):
2013-11-12 13:57:01 GMT tss_usr 8113 LOG: could not receive data from client: Connection reset by peer
tss_usr ist die postgresql-Benutzer der django-Anwendung-Datenbank und (in diesem Beispiel) 8113 ist die pid des Prozesses, der getötet die Verbindung, denke ich.
Haben Sie eine Idee, warum das passiert, oder zumindest gewusst wie: Debuggen dieses Problem?
Machen wieder alles funktioniert muss ich neu starten, postgresql, was das ist äußerst unbequem.
- Diese msg wird in der Regel protokolliert, wenn Postgres zahlen darauf hin, dass die Anwendung verbunden war, Weg gegangen ist und nicht geschlossen, die Verbindung zur Datenbank. Ich bin wirklich überrascht, Sie haben mit dem Neustart von Postgres eine neue Verbindung. Ist das mit jeder app? oder nur deine? Können Sie die Verbindung über psql?
- Ich habe gegoogelt und ich fand heraus, was diese Meldung bedeutet, aber ich habe keine Idee, wie das zu prüfen, was die Ursache ist. Ich habe eine django-app, die verwendet Sellerie, aber ich habe keine Linien die Verwaltung von direkt-verbindungen schließen. Ich kann eine Verbindung via psql, aber wenn die Verbindung abbricht ich kann nichts tun, von einem lokalen terminal zu!
- Es ist möglich, dass Sie schon nicht-superuser-verbindungen (deine config-Datei wird sich zeigen , aber ich wäre überrascht, wenn Sie PostgreSQL selbst reagiert.
- Aber meine tss_usr Benutzer super-user-Privilegien auf django-app-Datenbank...von wich config-Datei redest du, postgresql.conf?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist ein älterer Beitrag, aber ich fand es einfach, denn ich hatte den gleichen Fehler heute in meiner postgres-logs. Ich verengt Sie sich auf ein PDO select-Anweisung. Ich bin mit Zend Framework 1.10.3 auf Ubuntu Precise.
Folgende pdo-Anweisung generiert einen Fehler, wenn $Meinung ist eine lange Zeichenkette. Die Spalte Meinung nach ist der Typ Text in meiner postgres-Tabelle. Die Abfrage ist erfolgreich, wenn $Meinung ist unter einer bestimmten Anzahl von Zeichen. 1000 Zeichen funktioniert. 2000 Zeichen schlägt fehl mit "could not receive data from client: Connection reset by peer".
Ich das problem umgangen indem:
->wo("substr(Stellungnahme,1,100) = ?",trim(substr($Meinung,1,100)))
Dies ist keine perfekte Lösung, aber für meine Zwecke ist die select-Anweisung mithilfe von substr() genügt.
Beachten Sie, dass ich kein problem habe, einfügen von langen strings in der gleichen Tabelle/Spalte. Das disconnect-problem, nur erscheint bei mir auf dem PDO select mit relativ langen text-strings.
Ich bekomme es im Jahr 2017 mit 9.4, ich habe keine text-Felder, die nicht wissen, was für ein PDO. Meine select-Anweisung ist etwa 50 bytes lang ist, ich bin versucht zu Holen eine int4 und double precision. Ich vermute, die Fehlermeldung kann bedeuten, dass mehrere Dinge.
Hab ich da gefunden https://dba.stackexchange.com/questions/142350/postgres-could-not-receive-data-from-client-connection-reset-by-peer die anzeigt, könnte es ein problem mit der client-Konfiguration. Mein client ist libpg und PQconnectdb() gibt mir ein CONNECTION_OK zurück. Es funktioniert zumindest teilweise.