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?
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
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
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?
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