NEWS
Server Cannot start inMem-objects on port 9001
-
Das ist es ja ... wenn es so wäre, dann wäre der Thread viel voller ... das KANN nicht so sein ... ALso wenn Du ein Log von sowas noch hast dann zeig mal ...
Ich habe doch die Fehlermeldung die in der /opt/iobroker/Log/iobrokerxxxxxx.log gepostet. Das ist der einzigste Error der in der Log stand.
Der Thread wird schon noch voller werden, macht ja nicht jeder jeden Tag ein backup. Und ich kann den Fehler jederzeit, auch mit dem Aufsetzen eines neuen Betriebssystem, reproduzieren.
Eben mit dem vorhandenen Betriebsystem ( Buster) reproduziert beim backup einspielen.
hier die aktuelle Log:
2022-04-28 23:01:45.252 - [31merror[39m: host.raspby4-Server Cannot start inMem-objects on port 9001: Failed to lock DB file "/opt/iobroker/iobroker-data/objects.jsonl"!Edit:
jetzt hat der Start des Iobrokers mal geklappt, nachdem ich folgendes ausgeführt habe:
curl -sL https://iobroker.net/fix.sh | bash -
sudo -u iobroker -H npm install iobroker.js-controller
rebootdas hatte ich aber früher auch schon mal ausgeführt, der Start des Iobrokers hatte aber bisher nicht geklappt.
P.S. Ja klar, wenn ich sage der Iobroker läuft nicht, dann meine ich natürlich der Admin läuft nicht, ohne Admin kein Iobroker start
-
@jaridian sagte in Server Cannot start inMem-objects on port 9001:
ohne Admin kein Iobroker start
aber sicher doch!
für iobroker start braucht es keinen admin.
-
@jaridian sagte in Server Cannot start inMem-objects on port 9001:
P.S. Ja klar, wenn ich sage der Iobroker läuft nicht, dann meine ich natürlich der Admin läuft nicht, ohne Admin kein Iobroker start
Naja das sind aber alles verschiedene Dinge.
Auchsicher das vor dem Backup restore alles sauber beendet ist? AN sich kommt die Meldung nur wenn ein prozess läuft der die DB offen hat ...
-
@homoran said in Server Cannot start inMem-objects on port 9001:
@jaridian sagte in Server Cannot start inMem-objects on port 9001:
ohne Admin kein Iobroker start
aber sicher doch!
für iobroker start braucht es keinen admin.
Ihr habt natürlich recht, er läuft natürlich auch ohne den Admin, Sorry, dann habe ich mich leienhaft falsch ausgedrückt und bitte um Nachsicht. Ich meine damit, ich benötige den Admin (wie wahrscheinlich die meisten Anwender) um auf die Weboberfläche des Iobrokers zu kommen, um auf meine Instanzen zugreifen zu können. Ist das jetzt korrekter ausgedrückt?
Auchsicher das vor dem Backup restore alles sauber beendet ist? AN sich kommt die Meldung nur wenn ein prozess läuft der die DB offen hat ...
Es läuft auf dem Raspberry nur der Iobroker, ich werde das nächstmal vor dem Einspielen des Backups, alle Instanzen beenden (bis auf dem Admin und Backitup). Mal sehen ob das was bringt.
-
@jaridian Oder Du beendest alles und machst es auf der Console:
iob restore <pfad zu backup datei>
Da biste noch sicherer das nichts läuft, was nicht soll
-
@great-sun said in Server Cannot start inMem-objects on port 9001:
iob restore <pfad zu backup datei>
Danke Dir für den Tip. Werde ich machen.
-
Hallo,
habe das gleiche Problem beobachtet. Nach einem Stromausfall startet der ioBroker nicht und gibt immer wieder die Fehlermeldung "host.raspberrypi-Server Cannot start inMem-objects on port 9001: Failed to lock DB file "/opt/iobroker/iobroker-data/objects.jsonl"!" aus.
Nach ca. 10min startet er aber dann, ohne, dass ich irgendetwas mache.
Hier ein Auschschnitt aus den Logs:
-
Könntest du den Text aus der Konsole bitte auch als TEXT in CodeTags eingebettet hier reinkopieren? Bilder aus der Konsole sind sinnfrei.
-
@thomas-braun
Hab ich angefügt -
@foxy99 Das sind keine CodeTags.
Dann verwendest du eine ungerade Version von nodeJS und dein iobroker-Repo scheint auch falsch zu sein.
-
@thomas-braun Ich hatte das auch schon, nur weil ich den iobroker nicht sauber runterfahren konnte, weil sich storage-seitig was weggehängt hat. Stromausfall gibts bei mir normal nicht hab ne USV davor
Das Problem liegt halt eher daran, dass der Prozess gerade in einem Zustand ist, in dem ihn beenden heißt, dass man sich die jsonl zerschießt. Da geht nix mehr außer restore. Evtl. könnte man überlegen das irgendwann mit wechselnden dateien zu machen:- Datei1 und Datei2 sind in sync
- Datei1 wird gelocked
- Datei1 wird geändert
- Detei1 wird sauber geschlossen (-lock)
- Detei2 wird gelocked
- Datei2 wird in Sync gebracht
- Datei2 wird sauber geschlossen (-lock)
So wäre immer eine Datei zum Lesen ohne lock verfügbar und bei solchen Stromausfällen, oder Storage-Problemen wäre ioBroker dann resilient. @Thomas-Braun was meinst Du? Soll/kann ich da irgendwo unterstützen/wollt Ihr sowas da haben?
-
@great-sun Ääääähhhmm ... eine "JSONL" zuerschiessen ... was meinst Du damit genau? "früher" bei den JSON Files der "File DB" konnte das passieren, aber JSONL an sich nicht. Also ws genau ist das Issue um was es hier geht?
-
@apollon77 bei mir kam mal der selbe Fehler, und nachdem alle locks sauber weg waren, war der Syntax in der jsonl nicht mehr korrekt. Es schien, als wäre die Datei nicht komplett sauber auf der Platte gelandet und daher danach unbenutzbar.
-
@great-sun Ok "locks" sind das eine ... Falls da welche bleiben ja dann ist das blöd. Was es das? Sind da "lock files" geblieben?
Ansonsten ist das JSONL Format genau so das selbst einzelne ungültige Einträge egal sind da Sie einfach ignoriert werden. Also was genau was kaputt (was nicht einzelne Datensätze waren)? Die Datei an sich sollte damit aber wie gesagt nicht unbenutzbar werden,
@AlCalzone FYI
-
@apollon77 Ich kanns Dir nicht mehr sagen, hab auch nicht dran gedacht eine Kopie der Datei zu machen... Wenn das nochmal passiert, mach ich das, damit Ihr da vielleicht was debuggen könnt. Mir war das zuviel Stress für zu wenig Nutzen
Und ja, zunächst sah es so aus, als wären es nur die locks. Danach war aber ein File kaputt... ioBroker startete nicht und spuckte immernoch die selbe Fehlermeldung aus iirc. Beim genaueren debuggen bin ich dann auf eine Syntax-Fehlermeldung gestoßen, konnte aber den Fehler nicht finden/beheben. Also Restore und alles ging wieder. -
@great-sun sagte in Server Cannot start inMem-objects on port 9001:
Beim genaueren debuggen bin ich dann auf eine Syntax-Fehlermeldung gestoßen, konnte aber den Fehler nicht finden/beheben. Also Restore und alles ging wieder.
Was für ein syntaxfehler soll das gewesen sein? die JSONL-files sind zeilenweise gültiges JSON. Wenn eine davon kaputt ist, wird sie ignoriert, was aber die Integrität der anderen Dateien nicht beeinflussen dürfte.
Und selbst wenn sie richtig kaputt wäre, kann das nur beim Komprimieren passieren, dann liegt nebendran aber noch ein Backup von vor dem Komprimieren
-
Hi
stoße gerade auf die gleiche Fehlermeldung und blicke so wirklich das Fazit zur Behebung hier nicht.
Habe einen IOB auf einem RPI2 und bestimmt schon 6 Monate nichts verändert nun wollte ich dort mal ran und habe über die Konsole mit IOB stop den IOB beendet und wollte updaten doch hier kommt schon der Fehler:
pi@raspberrypi:~ $ iob update No connection to databases possible ...
Um dies zu beheben hab ich mal den Fixer durchlaufen lassen, Neu gebootet und das OS aktualisiert alles ohne erkennbare Fehler aber der IOB startet nicht mehr und der status meldet:
pi@raspberrypi:~ $ iob status Server Cannot start inMem-objects on port 9001: Failed to lock DB file "/opt/iobroker/iobroker-data/objects.jsonl"!
Was sollte ich tun?
Besten Dank!
-
@dieter_p
So grundsätzlich bist du da wie genau unterwegs?sudo ln -s /usr/bin/node /usr/bin/nodejs uname -m && which nodejs node npm && nodejs -v && node -v && npm -v && whoami && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
posten.
-
@thomas-braun said in Server Cannot start inMem-objects on port 9001:
sudo ln -s /usr/bin/node /usr/bin/nodejs
Danke
armv7l /usr/bin/nodejs /usr/bin/node /usr/bin/npm v14.19.3 v14.19.3 6.14.17 pi /home/pi OK:1 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:2 http://archive.raspberrypi.org/debian buster InRelease OK:3 https://deb.nodesource.com/node_14.x buster InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. N: Paket nodejssudo kann nicht gefunden werden. N: Paket ln kann nicht gefunden werden. N: Paket /usr/bin/nodejs kann nicht gefunden werden.
-
Bitte die komplette Eingabezeile inkl. des login prompts posten.
Da ist irgendwas krumm gelaufen, was ich jetzt nicht nachvollziehen kann, weil ich nicht sehe was da eingeklimpert wurde. (Am Rande: Mit der rechten Maustaste kann man in die Konsole pasten, in den meisten Terminalprogrammen jedenfalls)