NEWS
JS Adapter Probleme - läuft zusätzlich als "Schattenprozess"?
-
Ich weiss nicht, wie ich das Phänomen anders bezeichnen könnte, als im Topic angegeben.
Folgendes Phänomen, mal an einem Datenpunkt fest gemacht:
Ich habe schon seit vielen Monaten den boolschen Datenpunkt "kritische_stoerung" als Objekt unter javascript.0 eingerichtet. Dieser wird von einem Blockly-Script auf true gesetzt, wenn bestimmte Systemkritische Ereignisse eintreten - z.B. wenn der DutyCycle der CCU über 50% geht. Das Script wird zyklisch per Cron alle 2 Minuten aufgerufen und fragt ca. 15 kritische Punkte ab.
Nun habe ich bereits zum zweiten Mal innerhalb einer Woche festgestellt, dass dieser Datenpunkt auf true gesetzt wird und ca. 1 Minute später wieder auf false. Zyklisch und ohne Unterbrechung.
Ich also im Script Debugzeilen eingefügt, um festzustellen, welcher der 15 Punkte eine Störung meldet. Ergebnis: keiner!
Darauf hin habe ich ALLE Scripts deaktiviert bis auf den bewussten. Ergebnis: der Datenpunkt toggelt weiterhin zwischen true und false.
Nach nochmaliger eingehender Kontrolle des Scripts konnte ich ausschließen, dass das Script den Datenpunkt toggelt. Ein anderer Prozess setzt also den DP auf true und mein Script setzt ihn wieder (weil ja kein Fehler vorliegt) auf false.
Ich habe also das Script auch deaktiviert. Es lief dann kein einziges Script mehr. Trotzdem wurde der DP jedesmal wieder auf true gesetzt, nachdem ich ihn manuell auf false gesetzt hatte.
Ein Neustart des Adapters behob das Problem erst mal. Bis es eben zum zweiten mal auftrat. Durch das darauf folgende Einschalten des Debug-Mode im der Instanz wurde der Adapter neu gestartet und der Fehler ist wieder weg...
Gemerkt habe ich das Problem zuerst durch eine andere Auffälligkeit:
Zur Durchsage per SayIt laufen verschiedene Scripte, die in einen Datenpunkt "durchsage" einen String mit dem Durchsagetext schreiben. Ein anderes Script schaut auf Änderungen dieses DP und gibt den Text aus.
Bei einer berechtigten Durchsage "Fenster xyz ist noch offen" kam aber in folgender Reihenfolge:
"Die Waschmaschine ist fertig"
"Fenster xyz ist noch offen"
"Fenster xyz ist noch offen"
"Fenster xyz ist noch offen"
also erst ein Text, der an diesem Tag noch gar nicht relevant war (und definitiv nicht in den Datenpunkt "durchsage" geschrieben wurde - das konnte ich live beobachten) und dann der richtige Text drei mal. Nach Adapter-Neustart läuft alles wieder normal. -
starte das System mal neu.. nicht nur den iobroker
-
Hallo arteck,
danke für deine Antwort.
Klar, das Problem ist weg, wenn ich schon den Adapter neu starte. Damit ist klar, dass es auch beim Neustart des Systems weg sein muss.
Das System wird jede Nacht (nach Backup/Snapshot Proxmox) neu gestartet. Das Probloem tritt also im laufenden Betrieb auf und die Lösung sollte nicht sein "wenn es auftritt, starte einfach neu". Sich auf diese Weise damit abzufinden, würde bedeuten, sich mit einem instabilen System abzufinden.
Gruß
Manfred -
@hmanfred
Nein, da ist ein Unterschied!Wenn wirklich ein Prozess doppelt läuft nutzt das neustarten des Adapters nicht wirklich.
Erst der Reboot des systems killt diesen dauerhaft.Ggf. Ist ja der Neustart die Ursache.
Wird dabei wirklich die VM vollständig neu gestartet?
Ein nur teilweise gestoppter ioBroker kann zu dem error führen. -
Danke für die Info.
Ich habe jetzt mal nachgesehen. Ich lasse das Backup tatsächlich im sog. "snapshot mode" laufen.
Habe jetzt mal umgestellt auf "stop mode". In der Hilfe steht dazu:
"It works by executing an orderly shutdown of the VM, and then runs a background Qemu process to backup the VM data. After the backup is started, the VM goes to full operation mode if it was previously running."Mal sehen, was es bringt.