NEWS
Iobroker update -> possible EventEmitter memory leak detected
-
Hallo Zusammen,
die folgende Fehlermeldung bekomme ich zuallererst, wenn ich auf der Kommandozeile "iobroker update" eingebe.
(node) warning: possible EventEmitter memory leak detected. 11 error listeners added. Use emitter.setMaxListeners() to increase limit. Trace at TLSSocket.addListener (events.js:239:17) at TLSSocket.Readable.on (_stream_readable.js:680:33) at Request. <anonymous>(/opt/iobroker/node_modules/npm-registry-client/lib/request.js:153:7) at emitOne (events.js:77:13) at Request.emit (events.js:169:7) at ClientRequest. <anonymous>(/opt/iobroker/node_modules/request/request.js:791:10) at emitOne (events.js:82:20) at ClientRequest.emit (events.js:169:7) at tickOnSocket (_http_client.js:502:7) at onSocketNT (_http_client.js:514:5)</anonymous></anonymous>
Danach kommt noch ein:
update done Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/.bin/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/abbrev/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/accepts/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/after/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/amp/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/amp-message/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/ansi-regex/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/ansi-styles/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/array-flatten/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/arraybuffer.slice/io-package.json: TypeError: Cannot read property 'test' of undefined ... ... geht noch ca 200 Zeilen so weiter...
Am Ende führt das alles dazu. dass ich im Admin in der Adapterübersicht keine Versionsnummer in der Spalte "installed" angezeigt bekomme. Mit allen Konsequenzen, die da möglicherweise dranhängen.
Irgendwelche Ideen?
Ach so.
npm -v
2.15.8
node -v
v4.4.7
frisch installiert.
Danke für jegliche Ideen.
-
Hallo Bernhard,
reicht dir ein: ist so! ?
Das muss mit den letzten updates (vermutlich admin) zusammenhängen, die Bluefox unmittelbar vor seinem Urlaub freigegeben hatte.
Hier im forum gibt es mehrere workarounds
. ich kann gerade nicht danach suchen.
Gruß
Rainer
-
-
Hallo zusammen,
Leider hilft keiner der beschriebenen workarounds. Der js-Controller ist auf 0.11.2. Zumindest sagt er das in der hosts Übersicht.
Bin ratlos. Im Moment funktioniert zwar vis einwandfrei, und ich habe auch keine weiteren log Einträge, aber ich bekomme einfach keine updates mehr hin :shock:
-
Der js-Controller ist auf 0.11.2. …, aber ich bekomme einfach keine updates mehr hin `
Die Updates der Adapter haben in Version 0.11.1 des js-controllers nicht funktioniert. In Version 0.11.2 funktionieren die Updates wieder. -
Das hat nichts mit dem Controller zu tun! Ich habe exakt das gleiche Problem -> http://forum.iobroker.net/viewtopic.php?f=22&t=3320
-
Hallo zusammen,
Leider hilft keiner der beschriebenen workarounds. Der js-Controller ist auf 0.11.2. Zumindest sagt er das in der hosts Übersicht.
Bin ratlos. Im Moment funktioniert zwar vis einwandfrei, und ich habe auch keine weiteren log Einträge, aber ich bekomme einfach keine updates mehr hin :shock: `
Wie ich schon geschrieben habe, Versuch mal einzeln upzudaten.Ansonsten empfehle ich noch die node Version zu wechseln. Einfach zu irgend eine andere.
-
Welche Version verwendest du denn aktuell?
Ich wollte mir mit n mal eine andere Version installieren und testen, welche läuft. Wenn du uns aber eine Empfehlung geben kannst, wäre das nicht schlecht
-
Hallo PArt,
hallo paul53,
wahrscheinlich liegt es einfach an der npm-Version.
Welche npm-Version hast du denn installiert?
npm -v
npm 4.2 gibt es noch nicht. Die neueste Version ist 3.10.6. Diese macht aber noch in vielen Fällen Probleme, insbesondere wenn man nicht node.js 5.x oder 6.x verwendet. Diese sollten aber mit iobroker (noch) nicht verwendet werden.
Falls eine npm-Version 3.x installiert ist, welchsel mal auf die aktuelle Version für node.js 4.x zurück. Diese ist zurzeit v2.15.9
npm install -g npm@latest-2
Das es nach einem Wechsel der node.js-Version wieder klappt liegt daran, dass damit auch automatisch npm überbügelt wird
-
Hi, leider hat das nichts geändert … Ich habe, wie du beschrieben hast, NPM gedowngradet
root@iobroker:/opt/iobroker# npm -v
2.15.9
root@iobroker:/opt/iobroker# node -v
v4.2.1
Leider ändert dies aber nichts an besagten Fehlern und der fehlenden Anzeige bereits installierter Adapter! Hast du noch eine Idee?
-
Wahrscheinlich hängt da noch was komplett schief mit der alten Installation.
Hast du schon versucht, den js-controller komplett zu deinstallieren, das Verzeichnis zu löschen und dann manuell neu zu installieren?
cd /opt/iobroker iobroker stop npm uninstall --save iobroker.js-controller rm -r /opt/iobroker/node_modules/iobroker.js-controller rm -rf ~/.npm npm cache clear npm install iobroker.js-controller
-
Leider ebenfalls keinen Erfolg!
Ich vermute, das das an den Fehlermeldungen liegt, die ioBroker ausspuckt, während iobroker update läuft ->
Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/.bin/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/abbrev/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/accepts/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/after/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/amp/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/amp-message/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/ansi-regex/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/ansi-styles/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/array-flatten/io-package.json: TypeError: Cannot read property 'test' of undefined Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/arraybuffer.slice/io-package.json: TypeError: Cannot read property 'test' of undefined
-
Jep, ich habe im Repro mal nach der Meldung gesucht, siehe da ….
https://github.com/ioBroker/ioBroker.js ... b/tools.js
Die Vermutung liegt nahe, dass das an Zeile 191 liegt, anscheinend ist die RegEx ungültig
`if (regExp.test(dirs[i]) && fs.existsSync(path + 'io-package.json')) {`[/i]
-
Ok, habe den fehler gefunden! Dieser behebt zwar die meldungen via iobroker update, jedoch nicht die anzeige! Ich vermute, das das der gleiche fehler im admin ist. Ich habe einen entsprechenden fork erstellt und einen pull-request ans repository erstellt. Den Admin schaue ich mir auch noch schnell an, vielleicht finde ich was..
Ah, UPDATE: iobroker restart hat geholfen! Anscheinend hat mein fix das problem gleich mit gelöst!
Für alle mit dem gleichen Problem und bis zum Fix: https://github.com/PArns/ioBroker.js-controller
-
Was war der Fehler?
-
Siehe https://github.com/ioBroker/ioBroker.js … /115/files
Dort wurde eine RegEx verwendet, die aber NULL war, anscheinend hat Bluefox vergessen, die RegEx ebenfalls ein paar Zeilen tiefer richtig zu initialisieren. Typischer Copy&Paste fehler... Ich vermute, das der Fehler nicht bei jedem auftritt, da hier codestücke doppelt vorhanden sind. Ggf. sollte man da ne Funktion draus machen
-
ok, hab gesehen.
Ich hätte sie eher vor 185 geschoben statt sie nun zweimal zu erzeugen.
Die Fehlermeldung in 238 könnte auch noch korrigiert werden. Die hat mich in die Irre geführt.
`console.log('Cannot read or parse ' + __dirname + '/../../../node_modules/' + dirs[i] + '/io-package.json: ' + e.toString());`[/i]
-
Ich vermute, das der Fehler nicht bei jedem auftritt, da hier codestücke doppelt vorhanden sind. Ggf. sollte man da ne Funktion draus machen
`
Ja, aber es tritt bei den meisten einfach nicht auf, weil eigentlich immer lokale Pakete unterhalb von /opt/iobroker/node_modules/js-controller/node_modules installiert werden. Sind die abhängigen Pakete bei dir alle direkt unter /opt/iobroker/node_modules oder global installiert?
-
Ja, die Pakete liegen bei mir unter /opt/iobroker/node_modules
Allerdings dachte ich bis jetzt, das diese dort standardgemäß liegen!? Ist das eine Einstellungssache?
An der Config habe ich nie etwas geändert
PS. zur RegEx, ja da gebe ich dir recht … Hab eine neue Version hochgeladen!
-
Es gibt fix auf github (0.12.3 - js-controller) für EventEmitter problem,
aber ihr spricht hier über was anderes. Ist das gelöst?