NEWS
Multihost: EADDRINUSE (mal wieder...)
-
Ich weiss hier wirklich nicht mehr weiter, hatte das schon mehrfach gepostet und auch Lösungen uas anderen threads ausporobiert, leider ohne Erfolg.
Ich habe 3* Raspi 3b+ im Betrieb, die sind alle vor ein paar Wochen frisch aufgesetzt worden (raspian buster lite und dann iobroker installiert). Alle 3 haben node.js 12.19.0, npm v6.14.8 und js-controller 3.1.6.Immer mal wieder laufen im log Fehlermeldungen auf
2020-11-24 19:49:54.234 - error: host.iomaster Multihost discovery server: error: Error: bind EADDRINUSE 0.0.0.0:50005wenn ich die Teile neu starte (sudo shutdown -r 0) ist wieder Ruhe, mal tagelang, mal auch nur für ein paar Stunden.
Wie kann ich diesen Fehler systematisch eingrenzen und idealerweise finden/beheben?
Wenn ich per Konsole auf einen der Raspis gehe und iobroker list instances eingebe, sehen die Instanzen eigentlich gut aus:pi@iomaster:/opt/iobroker $ iobroker list instances Cannot parse /opt/iobroker/iobroker-data/objects.json: SyntaxError: Unexpected end of JSON input system.adapter.admin.0 : admin - enabled, port: 8081, bind: 0.0.0.0, run as: admin system.adapter.alexa2.0 : alexa2 - enabled system.adapter.backitup.0 : backitup - enabled system.adapter.coronavirus-statistics.0: coronavirus-statistics - enabled system.adapter.daswetter.0 : daswetter - enabled system.adapter.discovery.0 : discovery - enabled system.adapter.flot.0 : flot - enabled system.adapter.history.0 : history - enabled system.adapter.hm-rega.0 : hm-rega - enabled system.adapter.hm-rpc.0 : hm-rpc - enabled, port: 0 system.adapter.hm-rpc.1 : hm-rpc - enabled, port: 0 system.adapter.hm-rpc.2 : hm-rpc - enabled, port: 0 system.adapter.hm-rpc.3 : hm-rpc - enabled, port: 0 system.adapter.ical.0 : ical - enabled system.adapter.ical.1 : ical - enabled system.adapter.ical.2 : ical - enabled system.adapter.ical.3 : ical - disabled system.adapter.ical.4 : ical - disabled system.adapter.ical.5 : ical - disabled system.adapter.ical.6 : ical - enabled system.adapter.info.0 : info - enabled system.adapter.iot.0 : iot - disabled system.adapter.javascript.0 : javascript - enabled system.adapter.klf200.0 : klf200 - enabled system.adapter.lgtv.0 : lgtv - enabled system.adapter.mercedesme.0 : mercedesme - enabled system.adapter.milight-smart-light.0 : milight-smart-light - enabled system.adapter.plenticore.0 : plenticore - enabled system.adapter.radar2.0 : radar2 - enabled system.adapter.rpi2.0 : rpi2 - enabled system.adapter.rpi2.1 : rpi2 - enabled system.adapter.rpi2.2 : rpi2 - enabled system.adapter.shelly.0 : shelly - enabled, port: 1882, bind: 0.0.0.0 system.adapter.shuttercontrol.0 : shuttercontrol - enabled system.adapter.smartmeter.0 : smartmeter - enabled system.adapter.snmp.0 : snmp - enabled system.adapter.sonoff.0 : sonoff - enabled, port: 1883, bind: 0.0.0.0 system.adapter.tankerkoenig.0 : tankerkoenig - enabled system.adapter.tr-064.0 : tr-064 - enabled system.adapter.vis-bars.0 : vis-bars - enabled system.adapter.vis-canvas-gauges.0 : vis-canvas-gauges - enabled system.adapter.vis-colorpicker.0 : vis-colorpicker - enabled system.adapter.vis-hqwidgets.0 : vis-hqwidgets - enabled system.adapter.vis-justgage.0 : vis-justgage - enabled system.adapter.vis-map.0 : vis-map - enabled system.adapter.vis.0 : vis - enabled system.adapter.web.0 : web - enabled, port: 8082, bind: 0.0.0.0, run as: admin system.adapter.zigbee.0 : zigbee - enabledwas mich hier stutzig macht ist allerdings die Fehlermeldung in der 2. Zeile, "...unexpected end of JSON input", keine Ahnung ob das irgendwie damit zusammenhängt.
Hat hier jemand eine Idee?
VG
Andreas -
@amg_666 Wenn der Fehler auftritt, dann gib mal auf dem Raspi den folgenden Befehl ein, dann solltest du sehen, welcher Prozess den Port 50005 besetzt:
sudo netstat -tulpn | grep 50005 -
Ich weiss hier wirklich nicht mehr weiter, hatte das schon mehrfach gepostet und auch Lösungen uas anderen threads ausporobiert, leider ohne Erfolg.
Ich habe 3* Raspi 3b+ im Betrieb, die sind alle vor ein paar Wochen frisch aufgesetzt worden (raspian buster lite und dann iobroker installiert). Alle 3 haben node.js 12.19.0, npm v6.14.8 und js-controller 3.1.6.Immer mal wieder laufen im log Fehlermeldungen auf
2020-11-24 19:49:54.234 - error: host.iomaster Multihost discovery server: error: Error: bind EADDRINUSE 0.0.0.0:50005wenn ich die Teile neu starte (sudo shutdown -r 0) ist wieder Ruhe, mal tagelang, mal auch nur für ein paar Stunden.
Wie kann ich diesen Fehler systematisch eingrenzen und idealerweise finden/beheben?
Wenn ich per Konsole auf einen der Raspis gehe und iobroker list instances eingebe, sehen die Instanzen eigentlich gut aus:pi@iomaster:/opt/iobroker $ iobroker list instances Cannot parse /opt/iobroker/iobroker-data/objects.json: SyntaxError: Unexpected end of JSON input system.adapter.admin.0 : admin - enabled, port: 8081, bind: 0.0.0.0, run as: admin system.adapter.alexa2.0 : alexa2 - enabled system.adapter.backitup.0 : backitup - enabled system.adapter.coronavirus-statistics.0: coronavirus-statistics - enabled system.adapter.daswetter.0 : daswetter - enabled system.adapter.discovery.0 : discovery - enabled system.adapter.flot.0 : flot - enabled system.adapter.history.0 : history - enabled system.adapter.hm-rega.0 : hm-rega - enabled system.adapter.hm-rpc.0 : hm-rpc - enabled, port: 0 system.adapter.hm-rpc.1 : hm-rpc - enabled, port: 0 system.adapter.hm-rpc.2 : hm-rpc - enabled, port: 0 system.adapter.hm-rpc.3 : hm-rpc - enabled, port: 0 system.adapter.ical.0 : ical - enabled system.adapter.ical.1 : ical - enabled system.adapter.ical.2 : ical - enabled system.adapter.ical.3 : ical - disabled system.adapter.ical.4 : ical - disabled system.adapter.ical.5 : ical - disabled system.adapter.ical.6 : ical - enabled system.adapter.info.0 : info - enabled system.adapter.iot.0 : iot - disabled system.adapter.javascript.0 : javascript - enabled system.adapter.klf200.0 : klf200 - enabled system.adapter.lgtv.0 : lgtv - enabled system.adapter.mercedesme.0 : mercedesme - enabled system.adapter.milight-smart-light.0 : milight-smart-light - enabled system.adapter.plenticore.0 : plenticore - enabled system.adapter.radar2.0 : radar2 - enabled system.adapter.rpi2.0 : rpi2 - enabled system.adapter.rpi2.1 : rpi2 - enabled system.adapter.rpi2.2 : rpi2 - enabled system.adapter.shelly.0 : shelly - enabled, port: 1882, bind: 0.0.0.0 system.adapter.shuttercontrol.0 : shuttercontrol - enabled system.adapter.smartmeter.0 : smartmeter - enabled system.adapter.snmp.0 : snmp - enabled system.adapter.sonoff.0 : sonoff - enabled, port: 1883, bind: 0.0.0.0 system.adapter.tankerkoenig.0 : tankerkoenig - enabled system.adapter.tr-064.0 : tr-064 - enabled system.adapter.vis-bars.0 : vis-bars - enabled system.adapter.vis-canvas-gauges.0 : vis-canvas-gauges - enabled system.adapter.vis-colorpicker.0 : vis-colorpicker - enabled system.adapter.vis-hqwidgets.0 : vis-hqwidgets - enabled system.adapter.vis-justgage.0 : vis-justgage - enabled system.adapter.vis-map.0 : vis-map - enabled system.adapter.vis.0 : vis - enabled system.adapter.web.0 : web - enabled, port: 8082, bind: 0.0.0.0, run as: admin system.adapter.zigbee.0 : zigbee - enabledwas mich hier stutzig macht ist allerdings die Fehlermeldung in der 2. Zeile, "...unexpected end of JSON input", keine Ahnung ob das irgendwie damit zusammenhängt.
Hat hier jemand eine Idee?
VG
Andreas -
@UncleSam ```
pi@iomaster:/opt/iobroker $ sudo netstat -tulpn | grep 50005
udp 0 0 0.0.0.0:50005 0.0.0.0:* 1307/iobroker.js-co -
@amg_666 Ich nehme an, im Moment tritt der Fehler gerade nicht auf, oder? Weil nur ioBroker aufgeführt ist und nicht irgend eine andere Applikation.
-
@amg_666 Ich nehme an, im Moment tritt der Fehler gerade nicht auf, oder? Weil nur ioBroker aufgeführt ist und nicht irgend eine andere Applikation.
@UncleSam So, heute tritt der Fehler wieder auf und wenn ich parallel im Terminal den netstat Befehl absetze, kommt wieder nur das Ergebnis wie oben:
sudo netstat -tulpn | grep 50005 udp 0 0 0.0.0.0:50005 0.0.0.0:* 7192/iobroker.js-coAber was mir aufgefallen ist: Das System hat jetzt 4 Tage ohne Murren gelaufen und die Fehler treten heute auf, nachdem ich in der Admin Oberfläche unter "Hosts" sowohl beim Master als auch etwas später bei den beiden Salves auf Restart geklickt habe.
-
@UncleSam So, heute tritt der Fehler wieder auf und wenn ich parallel im Terminal den netstat Befehl absetze, kommt wieder nur das Ergebnis wie oben:
sudo netstat -tulpn | grep 50005 udp 0 0 0.0.0.0:50005 0.0.0.0:* 7192/iobroker.js-coAber was mir aufgefallen ist: Das System hat jetzt 4 Tage ohne Murren gelaufen und die Fehler treten heute auf, nachdem ich in der Admin Oberfläche unter "Hosts" sowohl beim Master als auch etwas später bei den beiden Salves auf Restart geklickt habe.
Hallo,
nachdem ich gestern den admin adapter auf allen Maschinen aktualisiert habe kommt bei mir die gleiche Meldung:
Multihost discovery server: error: Error: bind EADDRINUSE 0.0.0.0:50005 at dgram.js:338:20 at processTicksAndRejections (internal/process/task_queues.js:85:21)Die Ausgabe von netstat auf dem Master:
sudo netstat -tulpn | grep 50005 udp 0 0 0.0.0.0:50005 0.0.0.0:* 508/iobroker.js-conAuf den Slaves kommt gar nichts, dort ist der admin-Adapter auch nicht gestartet. Auf den Slaves kommen auch keine EADDRINUSE-Meldungen.
Master ist ein ODROID HC1, die zwei Slaves sind Raspi 3B+ alle mit jeweils aktualisiertem OS.
Nodejs ist Version 12.20.0, admin ist 4.1.10, js-controller ist 3.1.6Grüße
Stephan -
Hallo,
nachdem ich gestern den admin adapter auf allen Maschinen aktualisiert habe kommt bei mir die gleiche Meldung:
Multihost discovery server: error: Error: bind EADDRINUSE 0.0.0.0:50005 at dgram.js:338:20 at processTicksAndRejections (internal/process/task_queues.js:85:21)Die Ausgabe von netstat auf dem Master:
sudo netstat -tulpn | grep 50005 udp 0 0 0.0.0.0:50005 0.0.0.0:* 508/iobroker.js-conAuf den Slaves kommt gar nichts, dort ist der admin-Adapter auch nicht gestartet. Auf den Slaves kommen auch keine EADDRINUSE-Meldungen.
Master ist ein ODROID HC1, die zwei Slaves sind Raspi 3B+ alle mit jeweils aktualisiertem OS.
Nodejs ist Version 12.20.0, admin ist 4.1.10, js-controller ist 3.1.6Grüße
Stephan -
@amg_666 Ich nehme an, im Moment tritt der Fehler gerade nicht auf, oder? Weil nur ioBroker aufgeführt ist und nicht irgend eine andere Applikation.
@skunz sagte in Multihost: EADDRINUSE (mal wieder...):
Multihost discovery server: error: Error: bind EADDRINUSE 0.0.0.0:50005 at dgram.js:338:20 at processTicksAndRejections (internal/process/task_queues.js:85:21)
Ich kenne den Fehler. Der kommt, wenn man gleichzeitig Broadcasts per UDP aussendet und auf dem gleichen Port darauf hört. Da scheint es gelegentlich zu Kollisionen zu kommen.
Beheben kann man, in dem man die folgende Zeile anpassen
https://github.com/ioBroker/ioBroker.js-controller/blob/32465155115ea1f92210793fe7041c4acf3a78ea/lib/multihostServer.js#L186von
server = dgram.createSocket('udp4');Nach
server = dgram.createSocket({type: 'udp4', reuseAddr: true});Doku dazu ist hier
https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_options_callback -
@skunz sagte in Multihost: EADDRINUSE (mal wieder...):
Multihost discovery server: error: Error: bind EADDRINUSE 0.0.0.0:50005 at dgram.js:338:20 at processTicksAndRejections (internal/process/task_queues.js:85:21)
Ich kenne den Fehler. Der kommt, wenn man gleichzeitig Broadcasts per UDP aussendet und auf dem gleichen Port darauf hört. Da scheint es gelegentlich zu Kollisionen zu kommen.
Beheben kann man, in dem man die folgende Zeile anpassen
https://github.com/ioBroker/ioBroker.js-controller/blob/32465155115ea1f92210793fe7041c4acf3a78ea/lib/multihostServer.js#L186von
server = dgram.createSocket('udp4');Nach
server = dgram.createSocket({type: 'udp4', reuseAddr: true});Doku dazu ist hier
https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_options_callback -
@oliverio Ich glaube es gibt keinen Grund, das nicht immer mit
reusezu machen. Kannst du ein Issue auf GitHub dafür erfassen?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden