NEWS
Javascript Adapter stürtzt ohne Fehlermeldung ab
-
Windows 10, Node v6.10.0, js-controller 1.2.0, JavaScript 3.4.0
RAM frei: >5500 MB
Bei mir stirbt übrigens auch immer der socket.io-Adapter.
-
Hallo Bluefox,
müsste es zum downgraden von 1.2.0 auf 1.1.3 nicht
npm i iobroker.js-controller@1.1.3 --production
heissen?
Bei mir hat er mit Deinem Befehl die 1.2.0 installiert. `
Ja. Natürlich.Mittlerweile wissen wir, dass Fehler in controller.js Datei ist.
Aber ich brauche da Unterstützung.
-
Was mir noch eingefallen ist: Als ich mal ne "Endlosschleife" eingebaut hatte ist gefühlt der Javascript-Adapter auch "stehengeblieben". In wirklichkeit lieff der Prozess auf 100% CPU … Also wenn es wieder passiert am besten mal schauen was der prozess auf der Systemebene macht - nicht das du irgendwo eine Art Endlosschleife eingebaut hast die den Adapter so "beschäftigt" das nichts anderes mehr ausgeführt wird!
-
Bitte die Problemsystemen downgraden und beobachten.
Dann werde ich Feature zu Feature einschalten und Stabilität schauen.
-
Hab jetzt mal das Downgrade durchgeführt und das Script gestartet.
Ich werde beobachten…
-
Ich habe keinen Downgrade gemacht, da ich ja noch js-controller 1.1.2 verwende. (Auf einem Multi host slave 1.1.3)
Eben mal den Rechner auf dem iobroker läuft neu gestartet.
Danach ist die Prozessorlast durch die Decke gegangen. Nach Deaktivierung des Jacascript Adapter ist die Prozessorlast wieder OK.
-
Und war es der Javascript-Adapter der die ganze CPU gezogen hat?
Dann alle Skripte ausschalten und nacheinander einschalten
-
Hab den Javascript Adapter jetzt auf Debug gestellt um evtl. im Log was zu finden und ihn wieder aktiviert.
Er bleibt jetzt konstant grün, und die Prozessorlast ist auch da, wo sie normal immer ist. Ich hab keine Ahnung was mit meinem System grade passiert, aber jetzt läuft es so wie es soll.
Werde jetzt den Loglevel wieder zurück auf Info stellen.
-
Hallo Bluefox,
müsste es zum downgraden von 1.2.0 auf 1.1.3 nicht
npm i iobroker.js-controller@1.1.3 --production
heissen?
Bei mir hat er mit Deinem Befehl die 1.2.0 installiert. `
Und 1.1.3 installiert? -
Hallo,
ich habe meinen j-controller vorerst nicht downgegradet und inzwischen herausgefunden, dass die Javaskriptinstanz bei mir nur abstürzt, wenn Lichter- und/oder Fensterskript aktiv sind/ist.
Allerdings läuft das jeweilige Skript eine Zeit lang problemlos, um dann irgendwann die ganze Instanz in die Knie zu zwingen.
Die Skripte habe ich hier aus dem Forum übernommen, das Lichterskript als Beispiel sie so aus:
! ` > /* System Zahl Lichter
zählt die Lichter in allen Räumen und meldet die Eingeschalteten namentlich
Daten kommen vom Gewerk "Licht"
*/
createState('zählen_Lichter.anzahlLichter', 0); // wenn benötigt: Anzahl der vorhandenen Lichter
createState('zählen_Lichter.anzahlLichterAn', 0); // Anzahl der Lichter, die an sind als Variable unter Javascript.0 anlegen
var cacheSelector = $('channelstate.id=*.STATE');
var cacheSelectorState = $('channelstate.id=*.STATE');
var cacheSelectorDimmer = $('channelstate.id=*.LEVEL');
function countLamps(obj) {
// Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Licht auf 0
var anzahlLichterAn = 0;
var anzahlLichter = 0;
var textLichterAn = [];
log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Licht
var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
var obj = getObject(id);
if (status === true) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
textLichterAn.push(obj.common.name); // Zu Array hinzufügen
}
log("Licht Nr. " + i + ": " + getObject(id).common.name + ": " + status);
++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
});
cacheSelectorDimmer.each(function (id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht
var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element)
if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
textLichterAn.push(obj.common.name); // Zu Array hinzufügen
}
log("Licht Nr. " + i + ": " + id + ": " + status); // gibt alle Elemente *.LEVEL im Gewerk Licht mit dem aktuelle Status im Log aus
++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
});
// Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
log("Text: " + textLichterAn);
log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn);
// die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
setState("zählen_Lichter.textLichterAn", textLichterAn.join(',
')); // Schreibt die aktuelle Namen der eingeschalteten LichtersetState("zählen_Lichter.anzahlLichterAn", textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
setState("zählen_Lichter.anzahlLichter", anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
}
cacheSelectorState.on(function(obj) { // bei Zustandänderung *. STATE im Gewerk Lichter
countLamps(obj);
});
cacheSelectorDimmer.on(function(obj) { // bei Zustandänderung *. LEVEL im Gewerk Licht
countLamps(obj);
}); `
Vielleicht hilft die Info ja bei der Lösung des Problems.
Grüße, Rob
-
Ich bin gestern Abend zurück zum js-controller@1.1.3.
Seitdem geht's wieder.
-
So, also mit der 1.1.3 läuft mein Script jetzt bereits mehrere Tage durchgehend. Liegt also an der 1.2.0
-
So, also mit der 1.1.3 läuft mein Script jetzt bereits mehrere Tage durchgehend. Liegt also an der 1.2.0 `
Ich habe schon die schuldige Zeile gefunden. Jetzt wird die Lösung gesucht. -
gerade noch gesehen, ich wollte am WE updaten.
Da bleib ich mal lieber bei der 1.1.3
-
So, also mit der 1.1.3 läuft mein Script jetzt bereits mehrere Tage durchgehend. Liegt also an der 1.2.0 `
Ich habe eine Frage an die, die das Problem haben:Welche Node.js Version und was für ein OS?
-
Also bei mir Node 6.11.1 auf einem Windows Server 2012 R2.
-
bei mir läuft node 6.11.2 auf Windows 7 professional SP1
-
Hallo,
meine Einstellungen bei Windows 7 pro
node 6.9.4
js controller 1.2
admin 2.07
Javascript 3.4.0
und habe damit keine Probleme mit Javascript
-
Ok. Das bestätigt die Vermutung, dass nur Windows dieses Problem hat.
-
Ok. Das bestätigt die Vermutung, dass nur Windows dieses Problem hat. `
Er hat doch keine Probleme.
Bei mir läuft auch alles gut (Win10)
Grüße