Sockets lassen sich nicht mehr neu starten?

Liebe Community, ich habe schon länger das Problem, dass sich zum Beispiel der HomeMatic Socket nicht mehr neu verbindet, wenn er mal kurz einen Verbindungsunterbruch hatte. Der Socket lässt sich auch nicht mehr verbinden, wenn ich den Socket schliesse und wieder öffnen möchte.
fehler.png

Dasselbe passiert zum Beispiel auch beim Server Socket, den ich für MQTT nutze.
Mein System läuft auf Docker auf einem QNAP NAS. Ich starte dann jeweilen den Container neu, dann funktioniert es wieder.

Irgendo bin ich mal auf dieses Kommando gestossen, vielleicht hilft das weiter?
[~] # lsof -iTCP -n -P|grep 5544

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dockerd 31138 admin 51u IPv6 45920976 0t0 TCP *:5544 (LISTEN)

Denselben Output erhalte ich, wenn ich die Sockets schliesse. Erst wenn ich den Container stoppe erhalte ich auf den command kein Ergebnis mehr.

Vielleich hilft auch das noch weiter, 1024 brauche ich für MQTT?

Die Fehlermeldung würde bedeuten, dass die Instanz bei dir auch ganz rot markiert ist? Kannst du das „provozieren“ oder kommt das erst nach einiger Zeit? Es müsste auf jeden Fall im Log Fehlermeldungen geben, warum die Instanz so „hart“ ausgestiegen ist.

paresy

Hallo parsey, meintest du das mit rot markiert?
rot.png

Passieren tut das alle paar Tage. Wenn ich den Socket aber manuell stoppe, kann ich ihn danach auch nicht mehr starten.
Ich hatte nun zum Testen mal den Homematic Server durchgestartet, der Socket konnte sich danach auch nicht mehr neu öffnen.
Fehlermeldung im Statusprotokoll

23.01.2021, 14:48:45 | TimerPool            | HomeMatic Socket (KeepAlive): Warten auf "Pong" von HomeMatic Funk fehlgeschlagen

Meldungen:

23.01.2021, 14:49:05 | Event Control        | Wiederverbinden [HomeMatic Socket] fehlgeschlagen = bind: Address already in use
23.01.2021, 14:49:45 | TimerPool            | HomeMatic Socket (KeepAlive): Socket ist nicht verbunden

Hast du in IP-Symcon mal geschaut, ob du irgendeine der I/O Instanzen hast, die auf dem Port 5544 liegen? Evtl. ein zweiter HomeMatic Socket der falsch konfiguriert ist? Oder ein Server Socket?

paresy

Nein, ich habe nur 9 I/O Sockets, habe alle durchgeschaut, ich kann nichts finden. Dasselbe passiert ja auch mit dem Server Socket, den ich für MQTT nutze auf port 1024. Wenn ich den manuell schliesse, kann ich ihn danach nicht wieder öffnen.

Es wirkt auf jeden Fall so, als wenn ein Prozess den Port weiterhin belegt und nicht freigibt - und dann kann IPS den natürlich nicht mehr binden. Mir wäre bisher nichts bekannt, dass dies generell unter Docker ein Problem ist. Somit habe ich bisher auch keinen heißen Tipp, was da passiert. :frowning:

paresy

Das ist das gleiche Problem das ich auch habe. Wenn die Verbindung zur CCU abbricht oder der Socket manuell geschlossen wird ist eine erneute Verbindung nicht mehr möglich.
Gruß Thorsten

Gesendet von meinem SM-A505FN mit Tapatalk

Könnte es irgendetwas mit IPv4 IPv6 zu tun haben, mit dem Befehl wird etwas mit IPv6 zurückgegeben:

[~] # lsof -iTCP -n -P|grep 5544

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dockerd 31138 admin 51u IPv6 45920976 0t0 TCP *:5544 (LISTEN)

Ich habe etwas Komisches herausgefunden:
Wenn ich die Sockets schliesse - > Symcon stoppe - > Symcon starte - > Sockets starte = > Danach kann ich die Sockets wie gewohnt beliebig oft schliessen und öffnen!
Könnte es sein, dass Sysmcon (für Docker) die Sockets ein bisschen zu früh startet?

Hallo paresy, was ich da entdeckt hatte ist nicht die Lösung des Problems! Kannst du dir nicht vielleicht einen Reim darauf machen, warum die Sockets nach einem Neustart von Symcon so gestartet werden, dass sie danach nicht restartet werden können?
Wenn ich jedoch Symcon starte ohne offene Sockets und die Sockets nachträglich starte, ich die Sockets dann beliebig restarten kann?

Magst du deinen Versuchsaufbau ein wenig ändern? Wenn du den Socket geöffnet hast, magst du mal ein paar Minuten warten bis du diese wieder schließt? Ich vermute, dass noch halb-offene Verbindung übrig bleiben, die von Docker gebunden sind und dass dadurch die Sockets nicht geöffnet werden können.

paresy

Die beiden Sockets für HM und MQTT sind bei mir eigentlich immer offen. Das Problem ist ja, wenn ich sie einmal schliesse, kann ich sie danach nicht wieder öffnen.

So geht es mir mit meinen HM Sockets auch. Wenn ich die CCU neu starte, kann sich Symcon nicht mehr damit verbinden. Nur ein Neustart von Symcon (bzw. von dem Raspi auf dem Symcon läuft) führt zum neuverbinden des Socket.
Gruß Thorsten

Gesendet von meinem SM-A505FN mit Tapatalk