Keine erneute Verbindung zu Gladys nach Internetausfall möglich

Hallo @pierre-gilles,

heute hatte ich Probleme mit der Free-Verbindung.
Gladys ist lokal erreichbar, kein Problem, aber jedes Mal, wenn ich mich mit Gladys Plus (auf dem Telefon oder PC) wieder verbinden wollte, erhielt ich diese Meldung:

Aber in der Dropdown-Liste sind keine Benutzer verfügbar.
Um das Problem zu lösen, muss ich:

  • mich lokal verbinden
  • mich von Gladys Plus abmelden
  • mich wieder mit Gladys Plus verbinden
  • daraufhin habe ich einen neuen Schlüssel
  • ich autorisiere meinen Benutzer erneut
  • ich greife erneut auf Gladys Plus zu und diesmal erscheint mein Benutzer in der Liste

Das beunruhigt mich ein bisschen, denn ich denke, wenn ich im Urlaub oder so bin, werde ich mich nicht wieder verbinden können.

Hallo @Nagromdark :slight_smile:

Interessant, normalerweise verbindet sich Gladys Plus automatisch wieder, aber du warst vielleicht in einem speziellen Fall, der die erneute Verbindung verhindert hat.

Hast du zufällig noch Zugriff auf die Gladys-Logs von damals? (docker logs gladys) Das würde mir helfen, das Problem nachzustellen!

Mein Fehler, ich habe ein Duplikat erstellt

Tatsächlich war das bei mir auch mit einem Stromausfall verbunden, um mein neues Panel zu installieren

Ein neues Design für meinen Teil ohne Stromausfall :frowning:

Das hat vielleicht nichts zu tun, aber als ich mit einem ähnlichen Problem konfrontiert wurde, lag es daran, dass ich versehentlich ein Test-Image von Gladys auf meinem NAS laufen ließ.
Daher gab es 2 Instanzen von Gladys, die gleichzeitig versuchen, sich zu verbinden.

Vielleicht liegt Ihr Problem auch hier?

Ich habe tatsächlich Änderungen im Zusammenhang mit Gladys Plus in der Version 4.56 vorgenommen, daher könnte es ein Problem geben.

Ich untersuche das!

Auf Serverseite bemerke ich, dass sich einige Clients extrem häufig mit Gladys verbinden, und das verursacht Lastprobleme auf Serverseite. Es scheint also ein echtes Problem zu geben :sweat_smile: (oder jemand führt einen DOS-Angriff auf den Server durch, aber das würde mich wundern, das passt zeitlich mit dem Release von 4.56 zusammen).

CPU-Last des Gladys Plus Load Balancers:

Und in den Server-Logs sehe ich unendlich viele Zeilen mit WebSocket-Neuanmeldungen auf ziemlich gewaltsame Weise!

@Nagromdark @spenceur Habt ihr zufällig Logs von Gladys, die ihr mir geben könnt? :slight_smile:

Okay, es gibt ein echtes Problem mit der Wiederverbindung. Ich habe die Gladys Plus-Architektur neu gestartet, und das hat meine persönliche Instanz getrennt, die sich nicht mehr verbinden kann! Ich denke, ich werde einfach die Gladys Plus-Änderungen, die ich vorgenommen habe, zurücksetzen, bis ich die Ursache des Fehlers gefunden habe!

PR Rückgängig:

https://github.com/GladysAssistant/Gladys/pull/2265

Gladys Assistant 4.56.1 wird gebaut:

https://github.com/GladysAssistant/Gladys/actions/runs/14156083876

In der Zwischenzeit glaube ich, den Bug identifiziert zu haben.

In Gladys Assistant 4.56 habe ich eine neue Authentifizierungslogik für Websockets eingeführt, die eine schnellere Verbindung ermöglicht: ideal für einen sofortigen Zugriff auf das Dashboard auf mobilen Geräten.

Das Problem? Wenn die Instanz die Verbindung verliert, versucht sie, sich mit demselben access_token, der bei der ersten Verbindung verwendet wurde, erneut zu verbinden. Allerdings ist dieser access_token inzwischen abgelaufen und wird nicht erneuert. Ich verwende eine neue Logik, die in der socket-io-Bibliothek vorhanden ist, und hatte deren Funktionsweise bei einer Trennung nicht verstanden.

Ergebnis: Der Gladys Plus-Backend lehnt die Verbindung ab (JWT abgelaufen), und die Instanz gerät in eine endlose Reconnect-Schleife.

Das ist eine gute Lektion, und hier sind einige Verbesserungsvorschläge:

  1. Erneuern des access_token bei Verlust der Verbindung, um mit einem gültigen Token neu zu starten.

  2. Hinzufügen einer Verzögerung vor der erneuten Verbindung, um eine Überlastung des Servers im Falle einer endlosen Schleife zu vermeiden.

  3. Verbesserung der Unit-Tests, um Szenarien des Verbindungsverlusts besser abzudecken und zu verhindern, dass dieser Bug erneut auftritt.

Entschuldigung für die Unannehmlichkeiten!

Ich halte euch auf dem Laufenden, sobald die Version 4.56.1 verfügbar ist :slight_smile:

Gladys Assistant 4.56.1 ist verfügbar und behebt den Bug :white_check_mark:

Für ein schnelles Update empfehle ich Ihnen den folgenden Befehl:

(Falls nötig mit sudo davor in Ihrer Konfiguration)

docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --run-once

Danke für die schnelle Korrektur!

Ich war nicht zu Hause und hatte das gleiche Problem… Ich dachte, mein Smart-Home-Server mit Gladys wäre ausgefallen. Und ich bin gerade nach Hause gekommen und habe festgestellt, dass alles lokal funktioniert hat.

Na gut, Update läuft gerade :wink:

Danke @pierre-gilles für deine Schnelligkeit!

Kannst du auch eine Alarmierung für die Lastverteilungslast hinzufügen?

Ich habe bereits eine ganze Menge an Überwachung, das hat mich darauf gebracht, dass es ein allgemeines Problem gibt :smiley:

Allmählich, je mehr Instanzen auf Gladys Assistant 4.56 umgestellt wurden, desto häufiger kam es vor, dass eine Instanz vorübergehend die Verbindung verlor, und diese Instanzen gerieten in eine aggressive Endlosschleife beim erneuten Verbinden.

Ich erhielt immer mehr E-Mails und verstand, dass es ein Problem gab!

Hallo @pierre-gilles,
deswegen habe ich nicht geantwortet, weil ich am Wochenende nicht verfügbar war. Ich wurde am Wochenende mehrmals von Gladys Plus abgemeldet.
Ich habe gerade auf 4.56.1 aktualisiert und die erneute Verbindung zu Gladys Plus erfolgte automatisch.
Vielen Dank für das Update :wink:

Hallo,
ich hatte auch zweimal das Problem, dass Gladys Plus nicht mehr verbunden war. Samstags, nach einem Update meiner Box und sonntags ohne ersichtlichen Grund.
Vielen Dank an @pierre-gilles für die schnelle Bearbeitung und das auch am Wochenende. Aktuell ist immer noch die Version 4.56.0 aktiv.
Abgesehen von dem bereits gelösten Problem, welche Lösungen gibt es, um wieder auf Gladys Plus zuzugreifen, wenn man nicht vor Ort ist, um den Mini-PC neu zu starten?

Danke @Jluc :slight_smile:

Mein Router (TP-Link Archer AX58 WiFi 6 AX 3000 Mbps Dual-Band-Router) bietet ein VPN, um auf mein lokales Netzwerk aus der Ferne zuzugreifen. Bei Problemen kann ich eingreifen und mich per SSH aus der Ferne mit meinem Mini-PC verbinden und sehen, was nicht stimmt, und den Mini-PC gegebenenfalls neu starten :slight_smile:

Free bietet auch die Möglichkeit, einen VPN zu konfigurieren. Könnten die Informationen in der Schulung vertieft werden?