Weiter zum Inhalt
  • Home
  • Aktuell
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Kein Backup nach Systemupdate (gelöst)

NEWS

  • Information zum Kontoabgleich und zur Namensänderung
    BluefoxB
    Bluefox
    10
    1
    356

  • Monatsrückblick Juli / August 2026 ist online!
    BluefoxB
    Bluefox
    9
    1
    1.8k

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.5k

Kein Backup nach Systemupdate (gelöst)

Geplant Angeheftet Gesperrt Verschoben Ungelöst Error/Bug
12 Beiträge 4 Kommentatoren 183 Aufrufe 4 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Michael SchmittM Michael Schmitt

    EDIT= dummfug

    AsgothianA
    AsgothianA
    Asgothian
    Developer
    schrieb zuletzt editiert von Asgothian
    #3

    @Michael-Schmitt sagte:

    Edit - Auf dummfug reagiert :)

    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

    1 Antwort Letzte Antwort
    0
    • S
      S
      Shadowhunter23
      schrieb zuletzt editiert von
      #4

      Könnte es ein Bild in den mqtt Objekten sein?

      Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
      ioBroker Backup Analyzer

      AsgothianA 1 Antwort Letzte Antwort
      0
      • S Shadowhunter23

        Könnte es ein Bild in den mqtt Objekten sein?

        AsgothianA
        AsgothianA
        Asgothian
        Developer
        schrieb zuletzt editiert von Asgothian
        #5

        @Shadowhunter23 sagte:

        Könnte es ein Bild in den mqtt Objekten sein?

        Nein - ich habe meine Objekte nicht in JSONL Dateien, und praktisch keine mqtt Objekte.

        Der mqtt Server ist nur zum testen und wird nicht aktiv benutzt.

        A.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        1 Antwort Letzte Antwort
        0
        • S
          S
          Shadowhunter23
          schrieb zuletzt editiert von Shadowhunter23
          #6

          Hmm, ich hatte die Meldung auch vor kurzem und ich hab auch Redis. Das Backup konnte nicht erstellt werden und bei mir lag es ein an einem Objekt was von einem Bild gekommen ist. Beim erstellen des Backups wird diese Datei objects.jsonl ja angelegt.

          edit
          Du musst herausfinden welches Objekt diesen Fehler verursacht, löschen und dann läuft das Backup durch.

          Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
          ioBroker Backup Analyzer

          1 Antwort Letzte Antwort
          0
          • AsgothianA
            AsgothianA
            Asgothian
            Developer
            schrieb zuletzt editiert von
            #7

            Wo wird diese Datei denn angelegt. Ich wuerde mir das gerne im Detail anschauen.

            A.
            Nachtrag: das Backup von redis klappt.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            1 Antwort Letzte Antwort
            0
            • S
              S
              Shadowhunter23
              schrieb zuletzt editiert von Shadowhunter23
              #8

              Die Meldung kommt nicht von Backitup, sondern vom js-controller. Backitup ruft nur iobroker backup auf, und der macht Folgendes:

              1. Er legt den Ordner /opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/ an.
              2. Er holt alle Objekte aus der laufenden Datenbank und schreibt jedes als eine Zeile in eine neue objects.jsonl in diesem Ordner. Dasselbe passiert mit den States.
              3. Er liest beide Dateien zeilenweise zurück und prüft jede Zeile mit JSON.parse. Darum bezieht sich „line 1 column 32145" auf eine einzelne Zeile, nicht auf die ganze Datei.
              4. Schlägt die Prüfung fehl, löscht er den tmp-Ordner sofort wieder. Deshalb findet man die geprüfte Datei hinterher nicht mehr.

              Die objects.jsonl in iobroker-data ist also nicht die geprüfte Datei. Selbst wenn dort eine Zeile defekt wäre, überspringt der js-controller sie beim Start, und der Export aus dem Speicher wäre trotzdem gültig.

              Was die Meldung bedeutet

              Der Export erzeugt nie kaputtes JSON. Wenn die zurückgelesene Zeile nach 32 KB mitten in einem String endet, wurde sie beim Schreiben abgeschnitten. Typische Ursachen: Platte voll oder Schreibfehler im Dateisystem, etwa eine sterbende SD-Karte. Erster Blick:

              df -h /opt/iobroker
              df -i /opt/iobroker
              dmesg | grep -iE "i/o error|ext4|mmc" | tail
              

              Dann iobroker backup einmal von Hand in der Konsole starten. Dort sieht man die komplette Ausgabe, die Backitup nur im Debug-Log zeigt. Interessant sind die Zeilen „Cannot get objects: …" oder „Cannot get states: …" direkt vor „Validating backup …".

              Die betroffene Zeile finden

              Weil der tmp-Ordner gelöscht wird, muss man die Datei während des Laufs wegkopieren. Im ersten Terminal:

              while true; do cp /opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/objects.jsonl /tmp/objects_dump.jsonl 2>/dev/null; cp /opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/states.jsonl /tmp/states_dump.jsonl 2>/dev/null; sleep 0.2; done
              

              Im zweiten Terminal:

              iobroker backup
              

              Nach dem Fehler das erste Terminal mit Strg+C beenden. Der folgende Einzeiler liest die Kopie genauso wie der js-controller und nennt Zeilennummer, Objekt-ID, Zeilenlänge und die 120 Zeichen vor der gemeldeten Position:

              node -e 'const {open}=require("fs/promises");(async()=>{const fd=await open(process.argv[1]);let n=0;for await(const line of fd.readLines()){n++;try{JSON.parse(line)}catch(e){const m=line.match(/"_?id":"([^"]+)"/);const p=+((e.message.match(/position (\d+)/)||[0,line.length])[1]);console.log("Zeile "+n+": "+(m?m[1]:"ID unlesbar")+" | Laenge "+line.length+" | "+e.message);console.log("..."+line.slice(Math.max(0,p-120),p)+"   <<< Position "+p)}}})()' /tmp/objects_dump.jsonl
              

              Für die States denselben Aufruf mit /tmp/states_dump.jsonl am Ende.

              Einordnung des Ergebnisses

              • Ist die gemeldete Zeile die letzte in der Kopie, wurde der Export mittendrin abgebrochen. Dann zuerst Platz schaffen, zum Beispiel alte Backups in /opt/iobroker/backups und im Backitup-Zielordner löschen, und den Lauf wiederholen.
              • Steht die Zeile mitten in der Datei, ist die Objekt-ID der Ausgangspunkt. Das Objekt im Admin unter „Objekte" ansehen und prüfen, welcher Adapter es angelegt hat.

              Zur Kontrolle der Live-Dateien reicht ein Blick auf die letzten 100 Zeichen. Endet die Ausgabe mit }$, ist die letzte Zeile vollständig, fehlt das $, ist sie abgeschnitten:

              tail -c 100 /opt/iobroker/iobroker-data/objects.jsonl | cat -A
              tail -c 100 /opt/iobroker/iobroker-data/states.jsonl | cat -A
              

              Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
              ioBroker Backup Analyzer

              AsgothianA 1 Antwort Letzte Antwort
              0
              • S Shadowhunter23

                Die Meldung kommt nicht von Backitup, sondern vom js-controller. Backitup ruft nur iobroker backup auf, und der macht Folgendes:

                1. Er legt den Ordner /opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/ an.
                2. Er holt alle Objekte aus der laufenden Datenbank und schreibt jedes als eine Zeile in eine neue objects.jsonl in diesem Ordner. Dasselbe passiert mit den States.
                3. Er liest beide Dateien zeilenweise zurück und prüft jede Zeile mit JSON.parse. Darum bezieht sich „line 1 column 32145" auf eine einzelne Zeile, nicht auf die ganze Datei.
                4. Schlägt die Prüfung fehl, löscht er den tmp-Ordner sofort wieder. Deshalb findet man die geprüfte Datei hinterher nicht mehr.

                Die objects.jsonl in iobroker-data ist also nicht die geprüfte Datei. Selbst wenn dort eine Zeile defekt wäre, überspringt der js-controller sie beim Start, und der Export aus dem Speicher wäre trotzdem gültig.

                Was die Meldung bedeutet

                Der Export erzeugt nie kaputtes JSON. Wenn die zurückgelesene Zeile nach 32 KB mitten in einem String endet, wurde sie beim Schreiben abgeschnitten. Typische Ursachen: Platte voll oder Schreibfehler im Dateisystem, etwa eine sterbende SD-Karte. Erster Blick:

                df -h /opt/iobroker
                df -i /opt/iobroker
                dmesg | grep -iE "i/o error|ext4|mmc" | tail
                

                Dann iobroker backup einmal von Hand in der Konsole starten. Dort sieht man die komplette Ausgabe, die Backitup nur im Debug-Log zeigt. Interessant sind die Zeilen „Cannot get objects: …" oder „Cannot get states: …" direkt vor „Validating backup …".

                Die betroffene Zeile finden

                Weil der tmp-Ordner gelöscht wird, muss man die Datei während des Laufs wegkopieren. Im ersten Terminal:

                while true; do cp /opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/objects.jsonl /tmp/objects_dump.jsonl 2>/dev/null; cp /opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/states.jsonl /tmp/states_dump.jsonl 2>/dev/null; sleep 0.2; done
                

                Im zweiten Terminal:

                iobroker backup
                

                Nach dem Fehler das erste Terminal mit Strg+C beenden. Der folgende Einzeiler liest die Kopie genauso wie der js-controller und nennt Zeilennummer, Objekt-ID, Zeilenlänge und die 120 Zeichen vor der gemeldeten Position:

                node -e 'const {open}=require("fs/promises");(async()=>{const fd=await open(process.argv[1]);let n=0;for await(const line of fd.readLines()){n++;try{JSON.parse(line)}catch(e){const m=line.match(/"_?id":"([^"]+)"/);const p=+((e.message.match(/position (\d+)/)||[0,line.length])[1]);console.log("Zeile "+n+": "+(m?m[1]:"ID unlesbar")+" | Laenge "+line.length+" | "+e.message);console.log("..."+line.slice(Math.max(0,p-120),p)+"   <<< Position "+p)}}})()' /tmp/objects_dump.jsonl
                

                Für die States denselben Aufruf mit /tmp/states_dump.jsonl am Ende.

                Einordnung des Ergebnisses

                • Ist die gemeldete Zeile die letzte in der Kopie, wurde der Export mittendrin abgebrochen. Dann zuerst Platz schaffen, zum Beispiel alte Backups in /opt/iobroker/backups und im Backitup-Zielordner löschen, und den Lauf wiederholen.
                • Steht die Zeile mitten in der Datei, ist die Objekt-ID der Ausgangspunkt. Das Objekt im Admin unter „Objekte" ansehen und prüfen, welcher Adapter es angelegt hat.

                Zur Kontrolle der Live-Dateien reicht ein Blick auf die letzten 100 Zeichen. Endet die Ausgabe mit }$, ist die letzte Zeile vollständig, fehlt das $, ist sie abgeschnitten:

                tail -c 100 /opt/iobroker/iobroker-data/objects.jsonl | cat -A
                tail -c 100 /opt/iobroker/iobroker-data/states.jsonl | cat -A
                
                AsgothianA
                AsgothianA
                Asgothian
                Developer
                schrieb zuletzt editiert von
                #9

                @Shadowhunter23
                Vielen Dank für die Details. Ich hab beides mal gemacht:

                State des Systems scheint gut (ich hab auch mal alle nvme meldungen aus dmesg mitgegeben:

                stormy@stormbroker:~ $ dmesg | grep -iE "i/o error|ext4|mmc|nvme" | tail
                [    2.176827] nvme nvme0: Ignoring bogus Namespace Identifiers
                [    2.185052]  nvme0n1: p1 p2
                [    2.664564] sdhci-brcmstb 1000fff000.mmc: Got CD GPIO
                [    2.664644] mmc1: CQHCI version 5.10
                [    2.669737] mmc0: CQHCI version 5.10
                [    2.714064] mmc0: SDHCI controller on 1000fff000.mmc [1000fff000.mmc] using ADMA 64-bit
                [    2.863102] mmc1: SDHCI controller on 1001100000.mmc [1001100000.mmc] using ADMA 64-bit
                [    2.903687] mmc1: new ultra high speed DDR50 SDIO card at address 0001
                [    3.590822] EXT4-fs (nvme0n1p2): mounted filesystem ce208fd3-38a8-424a-87a2-cd44114eb820 ro with ordered data mode. Quota mode: none.
                [    4.448618] EXT4-fs (nvme0n1p2): re-mounted ce208fd3-38a8-424a-87a2-cd44114eb820 r/w.
                stormy@stormbroker:~ $ 
                

                Vollständig ist die Datei schon - der Fehler kommt aus einem State - da muss ich schauen wo der genau her kommt.

                Allerdings sehe ich da trotzdem einen Bug im JS-Controller - beim Fehler muss die Datei entweder erhalten bleiben, oder eine bessere Meldung gegeben werden - sonst kommt man da nie drauf.

                da mach ich morgen einen Bug Report im JS-Controller.

                Nochmal vielen Dank.

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                1 Antwort Letzte Antwort
                0
                • S
                  S
                  Shadowhunter23
                  schrieb zuletzt editiert von
                  #10

                  Wie gesagt bei mir war es ein Bild unter mqtt welches den file is corrupted erzeugt hat. Nach dem löschen des Objektes lief das Backup wieder fehlerfrei durch.

                  Proxmox 9 HA-Cluster mit 3x HP prodesk 400 G6 i5
                  ioBroker Backup Analyzer

                  AsgothianA 1 Antwort Letzte Antwort
                  0
                  • S Shadowhunter23

                    Wie gesagt bei mir war es ein Bild unter mqtt welches den file is corrupted erzeugt hat. Nach dem löschen des Objektes lief das Backup wieder fehlerfrei durch.

                    AsgothianA
                    AsgothianA
                    Asgothian
                    Developer
                    schrieb zuletzt editiert von
                    #11

                    @Shadowhunter23 Bei mir sind es Einträge im native die aus dem icloud2 Adapter kommen. Das zu finden ist selbst mit deinen Code-Schnipseln (nochmal danke dafür) nicht einfach.

                    Ich hab einen Issue am JS-Controller zum Thema löschen der Daten auch wenn Fehler beim Parsen auftreten aufgemacht. https://github.com/ioBroker/ioBroker.js-controller/issues/3484

                    A.

                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                    1 Antwort Letzte Antwort
                    1
                    • mcm1957M
                      mcm1957M
                      mcm1957
                      Developer Most Active
                      schrieb zuletzt editiert von
                      #12

                      Ich frag mich nur warum irgendwelche Einträge im native das Backup crashen dürfen. Das sieht eigentlich nach eine Fehler im Backupkonzept oder im adpater-core aus. Solange ich etwas (egal was) mit den Systemroutinen in meine Objekte schreiben kann darf m.E. das Backup nicht daran scheitern sonern muss das 1:1 sichern und restaurieren.

                      Ev. wäre da ein zweites Issue mit der Forderung nach Backup muss alles sichern oder Schreiben ungültiger Daten muss verhindert werden angebracht. Wenn du das noch infos hast welcher Art die ungültigen Daten waren schreib das ggF.

                      P.S. Ich gehe davon aus, dass die ungültigen Daten NICHT durch manuelle Aktionen oder Dehle im Datei / Datenbanksystem oder Crashes entstanden sind.

                      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                      Support Repositoryverwaltung.

                      Wer 'nen Kaffee spendieren will: https://paypal.me

                      LESEN - gute Forenbeitrage

                      1 Antwort Letzte Antwort
                      0

                      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
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      493

                      Online

                      33.1k

                      Benutzende

                      83.8k

                      Themen

                      1.4m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2026
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe