Fehlersuche V6.1 auf Ubuntu 20.04 LTS

Hallo liebe Gemeine,

ich hoffe Ihr habt mit ein paar Vorschläge für die Fehlersuche:

Ich habe über viele Jahre IPS auf Ubuntu 18.04 ohne Probleme betrieben.
Nach einem SMART Festplattenfehler habe ich das System neu auf Ubuntu 20.04 installiert. Einzige Änderungen außer dem Betriebssystem, ich habe über das Betriebssystem ein SW-Raid-0 konfiguriert. IPS 6.1 unlimited hatte ich vor dem SMART Problem schon installiert.

Soweit war auch alles gut…

Aber seit einigen Tage kommt es immer wieder zu merkwürdigem Situationen.

Primär betrifft es die Management Console, diese „zickt“ als erstes. Entweder wird diese random neu geladen oder wird extrem langsam. Das Webfront und die IOs App sind zu diesem Zeitpunkt aber noch nicht betroffen.

Also wollte ich über die Spezialschalter mal ein paar Optionen fürs Log aktivieren. Jedoch lässt sich der Dienst in diesem Zustand nicht mehr neu starten oder beenden. Nach einem reboot werde die Einstellungen der Spezialschaltern nicht übernommen. Aber kurz nach dem reboot lässt sich der Dienst noch neu starten und die Änderungen der Spezialschalter werden so übernommen.

Gestern Abend war die Management Console und das Webfronst nicht mehr erreichbar. Also wieder ein reboot weil ein restart vom Dienst nicht möglich war. Ein Blick ins Archiv zeigt, die logs der Variablen wie z.B. vom Stromzähler wurden weiterhin aktualisiert… aber es war kein Zugriff auf das System mehr möglich. WebSocketWatch war aktiv, aber kein Eintrag im Logfile…

Ubuntu selber zeigt sich auch unbeeindruckt, weder Speicher noch Prozessor kommen über einen einstelligen Prozentwert.

Scheinbar blockiert ein Skript, ein Befehl oder ein Prozess das System.

Daher die Frage an euch, könnt Ihr mir ein paar sinnvolle Tipps für die Fehlersuche geben? Spezialschalter, Logfiles die ich vllt. noch nicht kenne? Da fehlt mir die Erfahrung, da es bisher nie Probleme gab :sweat_smile:

Im normalen log finde ich nichts außergewöhnliches außer :

MESSAGE | HomeKitBridge | Instance is using the server socket dataflow packet but is missing the Type field. This will stop working in the future.

Diese Meldung dominiert alles andere, aber aktuell ist es nur eine Warnung.

Falls jemand ein paar Ideen hätte, ich würde mich freuen :slight_smile:

Grüße und Danke

Micha

Hi,
schau mal hier:

Dieses Script z.B. 1Mal/Minute laufen lassen. Wenn dein System lahmt und es an zu vielen Scripten liegt solltest Du es im normalen Symcon-Log danach sehen. Ich benutze es auch schon einige Zeit und es hat mir schon 2-3 Mal geholfen.

Ich habe das Script mit

if ($threadCount > 20) {
    IPS_LogMessage($scriptName . '(' . $_IPS['SELF'] . ')', $s);
} 

abgeändert damit es nur etwas einträgt wenn > 20 Scripte gleichzeitig aktiv sind.

Ralf

Dort einmal auf den Beta Kanal wechseln. Dann ist diese Meldung weg.

Hast du sonst im Logfile irgendwas sichtbar?

Wenn du mit der großen Analyse Keule kommen willst, kannst du das probieren:

paresy

Klasse Idee, diese Funktion kannte ich noch nicht :slight_smile: Danke!
Werde mit gleich mal eine kleine Adaption basteln.

Wäre natürlich mega wenn es nur ein zyklisch aufgerufenes Skript ist, welches endlos auf die Rückantwort wartet und so dann die Threads volllaufen.

Gibt es für die Ausführung der Skripte ein hartes Zeitlimit oder könnte ein Skript mit z.B. while (true) {} endlos laufen?

Hey Paresy,

danke für deine Rückmeldung.

Nein leider nichts, habe die logs auch mit alten Backups verglichen. Bis auf ein paar Warnungen von Modulen ist nichts zu finden.

Was mir noch in den Sinn gekommen ist, ein paar meiner state machines verwalten ein eigenes logfile (fopen, filesize usw.) welche jetzt Lücken im Log haben. Da habe ich recht schlampig gearbeitet und keine Abbruchbedingung für die Rückgabewerte beim Logfile definiert…

Das müsste ich jetzt aber recht schnell mit der Idee von HarmonyFan herausfinden.

Sollte ich damit nicht auf ein selbst gemachtes Problem stoßen, werde ich deine Keule auspacken - Danke.

Hast du eine generelle Empfehlung für das Handling mit Skripten die auf einen Rückgabewert warten? Oder kann man die Laufzeit der Skripte in IPS generell limitieren?

Memory-Leak: Wo melden?

systemctl status symcon.service
● symcon.service - LSB: Kurze Beschreibung
Loaded: loaded (/etc/init.d/symcon; generated)
Active: active (exited) since Wed 2022-02-02 21:42:13 CET; 16h ago
Docs: man:systemd-sysv-generator(8)
Process: 764 ExecStart=/etc/init.d/symcon start (code=exited, status=0/SUCCESS)

Feb 02 21:43:15 ips symcon[774]: sendmsg() to ff02::fb failed: Network is unreachable
Feb 02 21:43:16 ips symcon[774]: sendmsg() to ff02::fb failed: Network is unreachable
Feb 02 21:43:18 ips symcon[774]: sendmsg() to ff02::fb failed: Network is unreachable
Feb 02 22:25:37 ips symcon[774]: Leaving mDNS multicast group on interface ens160.IPv6 with address 2a02:8070:99be>
Feb 02 22:25:37 ips symcon[774]: Leaving mDNS multicast group on interface ens160.IPv4 with address 192.168.40.65.
Feb 02 22:25:37 ips symcon[774]: sendmsg() to ff02::fb failed: Network is unreachable
Feb 02 22:25:37 ips symcon[774]: Leaving mDNS multicast group on interface lo.IPv6 with address ::1.
Feb 02 22:25:37 ips symcon[774]: Leaving mDNS multicast group on interface lo.IPv4 with address 127.0.0.1.
Feb 02 22:25:37 ips symcon[774]: mem: Memory leaks (1):
Feb 02 22:25:37 ips symcon[774]: 0x7f80b43d87e0: nrefs=1 size=48 [00 00 00 00 00 00 00 00 00 00 00 00 00 0