regelmäßiges Beenden des Symcon Dienstes.

Ich habe mehrere Skripte, die z.T. einmal pro Sekunde ausgeführt werden.
Normalerweise klappt das ohne Probleme.

Von einem Moment auf den anderen geht manchmal die Skriptlaufzeit enorm hoch (warum weiss ich noch nicht), kurze Zeit später beendet sich der Symcon Dienst, manchmal hängt sich auch der ganze Rechner auf.

In allen Skripten wird die Skriptlaufzeit geloggt und mit IPS_SemaphoreEnter und IPS_SemaphoreLeave abgefangen das Skripte mehrfach parallel ausgeführt werden.

Ich vermute mal das sich die 10 PHP Threads dann alle belegt sind und es deshalb zum Beenden des Dienstes kommt?

IPS läuft auf einem Ubuntu 18.04.4 LTS

Hast du schon entsprechend Crash-Logs an uns gesendet?

Du kannst in den Spezialschaltern die Anzahl der Thread ruhig mal auf 25 oder höher setzen.

paresy

nein, noch nicht. Mit Crash-Logs sind die Dateien logfile*.log aus dem Ordner /var/log/symcon gemeint?

ok, das habe ich mal gemacht. Ich beobachte das jetzt mal die nächsten Tage.

Danke und Grüße

Eigentlich sollte es dann im /var/log/symcon/minidump Ordner Dateien geben.

Zeigt dmesg irgendwelche Auffälligkeiten? z.B. OOM Nachrichten?

paresy

Den Ordner minidump in /var/log/symcon/ gibt es bei mir gar nicht.

Ich habe in den Spezialschaltern ein paar Sachen deaktiviert.
Aktiviert ist momentan:

  • ServerLogging
  • ServerLoggingFilter
  • ServerSecurity
  • SettingsWatch

Welche anderen Schalter wären noch hilfreich?

Ich glaube an den Schaltern hilft es nicht so viel zu drehen. Das einzige was wirklich hilft wäre das: Debugging für Experten (Raspberry Pi, Linux, SymBox)

Gibt es einen /var/lib/symcon/minidump Ordner?

paresy

Einen Ordner /var/lib/symcon/minidump gibt es bei mir nicht.

Das Debugging, wie im Link beschrieben (Option B), läuft jetzt.

Ich habe das jetzt die letzten Wochen beobachtet, nachdem ich ein Skript, das ich als Ursache vermutet habe, deaktiviert habe.
Danach kam es nur noch selten zum Beenden des Symcon-Dienstes.

In den letzten 3 Tagen passiert das Beenden des Dienstes jetzt wieder mehr oder weniger regelmäßig.

Helfen diese Logausgaben evtl. weiter?

30.06.2020 09:23:10 | 21161 | ERROR | TimerPool | Netz-Leistung (UpdateTimer): Zeitüberschreitung beim Warten auf Antwort
30.06.2020 09:23:26 | 25157 | ERROR | FlowHandler | Kann Daten nicht zur Instanz #25157 weiterleiten: Waiting for buffer usage timed out
30.06.2020 09:23:26 | 26001 | ERROR | TimerPool | Batterie-Leistung (UpdateTimer): Zeitüberschreitung beim Warten auf Antwort
30.06.2020 09:23:27 | 25157 | ERROR | FlowHandler | Kann Daten nicht zur Instanz #25157 weiterleiten: Waiting for buffer usage timed out

Leider Nein. Hast du Absturzberichte gesendet?

paresy

Du meinst das gdb?
Nein, das hat leider noch nie geklappt.
Ich versuche das morgen nochmal.

Hallo Paresy,

habe auch seit einigen Tagen wieder verstärkt Abstürze (vermutet seit letzem Update 5.5. ?)

folgender Fehler Müllt das Log zu.
Kommt vom Modul EHZ das bis dahin 2 Jahre ohne Probleme lief.
Daten kommen über den Ser Port rein. (Debug)

28.06.2020 16:15:30 | FlowHandler          | Kann Daten nicht zur Instanz #40049 weiterleiten: Abort Processing during Fatal-Error: implode(): Passing glue string after array is deprecated. Swap the parameters
   Error in Script C:\ProgramData\Symcon\modules\EHZ\Haushaltzaehler\module.php on Line 245

@WiBo: Du müsstest da RWN aktivieren, damit er das Modul an PHP 7.4 anpasst.

paresy

Hi,

habe ich versucht kommt aber keine Reaktion

Wenn Du mir sagts was ich ändern muss kann ich das selbst erledigen.

Habe im passenden Thema mal den Tipp gegeben.

paresy

Also, ich kann die Ursache für das Beenden des Dienstes nicht finden.

In den PHP Informationen sieht das bei mir immer so oder so ähnlich aus:

Welche Möglichkeiten hat man hier das Problem einzugrenzen?

Bleiben die dort auch stecken? Oder verschwinden die nach einer Weile? Wenn die „fest“ stecken, dann sind irgendwann ja alle aufgebraucht und dann ist klar, dass IP-Symcon irgendwann abstürzt.

Hast du das mit dem GDB mal probiert? Oder warum klappte das nicht?

paresy

Normalerweise verschwinden die nach ein paar Sekunden, die meisten brauchen nur ein paar Millisekunden.
Manche Threads, wie das vom Modul E3DC, brauch regelmäßig ca. 90 Sekunden.

Das mit dem GDB habe ich eine zeitlang probiert, da wurde aber nie etwas geloggt.
Vielleicht habe ich auch was falsch gemacht.
Ich probier das die nächsten Tage nochmal.

GDB loggt in dem Sinne auch nicht wirklich. Du willst (sobald du viele rote Threads hast) per CTRL + c den Debugger in „Pause“ versetzen und dann alle Threads (nach der Anleitung) in die gdb.txt exportieren. Diese kann ich mir dann einmal genauer ansehen :slight_smile:

paresy