unexpected error writing points to database: Socket receive error. errno 104
Closed this issue · 5 comments
Hallo,
mind. 1-2 mal am Tag werden keine Daten mehr via. MQTT übertragen und es kommt immer zu folgender Meldung:
{"code":"internal error","message":"unexpected error writing points to database: timeout"}[2024-09-09 09:08:52] pid=1 ppid=0 RscpMqttMain.cpp(2634) Error: Socket receive error. errno 104
Ich nutze das Image "image: pvtom/rscp2mqtt:latest-with-influxdb" und muss anschließend den Container immer neu starten. Dann funktioniert es wieder für eine Weile.
Was könnte die Ursache sein bzw. wie kann das Problem weiter geprüft werden? Vielen Dank!
Hallo,
das sind zwei unterschiedliche Fehler (im Log nicht richtig getrennt):
- {"code":"internal error","message":"unexpected error writing points to database: timeout"} kommt von der InfluxDB, die scheinbar Probleme beim Ablegen der Daten hat.
- "Socket receive error. errno 104" ist ein Kommunikationsabbruch durch das Hauskraftwerk: 104 steht für "Connection reset by peer". Diesen Abbruch fängt rscp2mqtt nicht sauber ab und hängt sich nach Auftreten auf. Dieses Problem kann ich lösen, so dass nach Auftreten des Abbruchs ein Reconnect durchgeführt wird. -> v3.30 kommt dann in Kürze.
Warum die Abbrüche oder der Timeout bei der InfluxDB auftreten, kann ich nicht sagen. Eine wackelige Netzwerkanbindung vielleicht? Auf welcher Hardware läuft denn der Docker Container und die InfluxDB?
Gruß Thomas
Vielen Dank für die schnelle Rückmeldung.
InfluxDB (influxdb:latest) läuft ebenfalls als Docker mit rscp2mqtt auf einem Celeron J6412 Host. Beide Container sind im selben Docker-Netzwerk.
v3.30 ist jetzt verfügbar.
- errno 104 wird jetzt abgefangen. Das Programm hängt sich nicht mehr auf
- zum InfluxDB-Timeout wurde in der Doku eine Erhöhung der Batchsize empfohlen. Das habe ich ich umgesetzt. Hoffe, dass der Fehler nicht mehr auftritt
Ich hoffe, das hat sich erledigt.
Sorry für die sehr späte Rückmeldung. Es läuft bis jetzt stabil und ich hatte keine Probleme mehr. Vielen Dank für deine Arbeit. :-)