Fehler bei Loxberry Selbsttest: Log Database

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • 74homer
    LoxBus Spammer
    • 26.02.2019
    • 262

    #1

    Fehler bei Loxberry Selbsttest: Log Database

    SOLVED


    Hallo,

    ich habe seit dem Reboot von Loxberry den Fehler "Log Database" im Loxberry Selbsttest.
    Hierzu gibt es eine Erklärung im Wiki.

    Allerdings hilft die im Wiki dokumentiert Lösung (Datei /opt/loxberry/log/system_tmpfs/logs_sqlite.dat löschen) nicht.

    Wenn ich versuche die Datenbank logs_sqlite.dat zu öffnen und die Tabellen anzuzeigen erhalte ich diesen Fehler:
    root@pc5-loxberry:/opt/loxberry/log/system_tmpfs# sqlite3 /opt/loxberry/log/system_tmpfs/logs_sqlite.dat
    SQLite version 3.27.2 2019-02-25 16:06:06
    Enter ".help" for usage hints.
    sqlite> .table
    Error: disk I/O error
    sqlite>


    Dieser Fehler weist auf eine Ursache mit der SD-Karte hin.
    Dies verstehe ich aber nicht, weil ja das Verzeichnis /opt/loxberry/log/system_tmpfs in der RAM Disk liegt und physisch nicht geschrieben wird.

    Wie kann ich den Fehler mit der DB beheben?


    Gruß
    Thomas
    Zuletzt geändert von 74homer; 28.12.2020, 23:40.
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11237

    #2
    Du hast das File gelöscht, und nachdem es von irgendeiner Logging-Aktion automatisch wieder erstellt wurde, und du es geöffnet hast, hast du danach diesen Fehler bekommen?
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • 74homer
      LoxBus Spammer
      • 26.02.2019
      • 262

      #3
      Hallo Christian,

      hier die Schritte in chronologischer Reihenfolge:
      1. Reboot Loxberry
      2. Anzeige Fehler in Systemeinstellungen - Mein Loxberry - Selbsttest
      3. Analyse der Datenbank /opt/loxberry/log/system_tmpfs/logs_sqlite.dat mit Hilfe von sqlite3: Ausgabe von select * from logs; gibt nach ca. 100 Zeilen den Fehler Error: database disk image is malformed
      4. Löschen der Datei /opt/loxberry/log/system_tmpfs/logs_sqlite.dat
      5. Die Datenbank wird automatisch wieder angelegt
      6. Analyse der Datenbank /opt/loxberry/log/system_tmpfs/logs_sqlite.dat mit Hilfe von sqlite3: Ausgabe von .table ist Error: disk I/O error
      Ich kann den Fehler reproduzieren mit der Datenbank /opt/loxberry/log/system/logs_sqlite.dat.bkp.

      Kann man die Datenbank reparieren?
      Zuletzt geändert von 74homer; 28.12.2020, 22:26.

      Kommentar


      • Christian Fenzl
        Christian Fenzl kommentierte
        Kommentar bearbeiten
        Dann lösch auch die. bkp Datei. Wahrscheinlich fährst du mit dem Öffnen genau ins Recovery nach Reboot rein.
    • 74homer
      LoxBus Spammer
      • 26.02.2019
      • 262

      #4
      Leider ist es nicht so einfach, diesen Fehler zu beheben.

      Ich habe die Backup-Datenbank /opt/loxberry/log/system/logs_sqlite.dat.bkp auf den PC kopiert und dort repariert wie hier dokumentiert.
      Während der Reparatur wurden massenhaft Fehler wie
      Error: near line 2605: UNIQUE constraint failed: logs.LOGKEY
      Error: near line 2651: NOT NULL constraint failed: logs.FILENAME
      Error: near line 2652: NOT NULL constraint failed: logs.LASTMODIFIED

      ausgegeben.

      Irgendwann war dann aber die Reparatur beendet und ich konnte einen pragma integrity_check; ausführen mit dem Ergebnis ok.

      Dann habe ich diese Backup-Datenbank auf den Raspi kopiert in das Verzeichnis /opt/loxberry/log/system.

      Hier die Ausgabe des Integrity Checks auf dem Raspi:
      root@pc5-loxberry:~# sqlite3 /opt/loxberry/log/system/logs_sqlite.dat.bkp "PRAGMA integrity_check"
      ok


      Anschließend kopiere ich diese Datenbank nach /opt/loxberry/log/system_tmpfs/logs_sqlite.dat.
      Aber jetzt ist der Integrity Check wieder fehlerhaft:
      root@pc5-loxberry:~# sqlite3 /opt/loxberry/log/system_tmpfs/logs_sqlite.dat "PRAGMA integrity_check"
      Error: disk I/O error


      Das kann dann nichts anderes bedeuten, als dass die RAM Disk einen Defekt hat.
      Oder?

      Man könnte jetzt darüber nachdenken, die RAM Disk durch einen Reboot neu zu initialisieren.
      Dann würde aber die defekte Datenbank /opt/loxberry/log/system_tmpfs/logs_sqlite.dat in das Backup /opt/loxberry/log/system/logs_sqlite.dat.bkp kopiert und würde somit die funktionierende Datenbank logs_sqlite.dat.bkp überschreiben.
      Kann dies irgendwie (einmalig) verhindert werden?
      Oder kann die RAM Disk anders repariert werden?
      Zuletzt geändert von 74homer; 28.12.2020, 23:08.

      Kommentar


      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        Wie das kommt kann so wohl keiner beantworten. Vielleicht liegt es aber auch ein bisschen mit an Dir selber. Sieh mal, Du erstellst zum wiederholten Mal nun einen Thread im falschen Bereich.

      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        Vielleicht ist ja Dein RAM defekt. Wenn dieser auch nach einem Neustart wieder auftritt, ist ja fast davon auszugehen. Oder Deine Spannungsversorgung stimmt nicht. Oder Du hast irgendwelche Dinge laufen, die Speicherbereiche im RAM überschreiben.
    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11237

      #5
      Du brauchst die ja nicht reparieren, du brauchst sie nur wegschmeißen.
      Ich hab keine Ahnung, was SQLite dir mit diesem Fehler sagen will. Möglicherweise einfach nur, dass du die Datei nicht manuell einfach überschreiben darfst, während sie in Verwendung ist.
      ​​​​​​
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar

      • 74homer
        LoxBus Spammer
        • 26.02.2019
        • 262

        #6
        Das Problem ist gelöst und hier die Schritte, die ich durchgeführt habe:
        1. Loxberry herunterfahren
        2. SD-Karte an PC anschließen
        3. Backup-Datenbank auf PC kopieren
        4. Reparatur der defekten Datenbank mit sqlite3 logs_sqlite.dat.bkp ".recover" | sqlite3 newlogs.db
        5. Validierung der neuen Datenbank mit sqlite3 newlogs.db "PRAGMA integrity_check"
        6. Wenn keine Fehler, dann die Datei newlogs.db kopieren auf die SD-Karte in das Verzeichnis /opt/loxberry/log/system/logs_sqlite.dat.bkp
        7. Validierung der Datenbank mit sqlite3 /<mount/sdcard>/opt/loxberry/log/system/logs_sqlite.dat.bkp "PRAGMA integrity_check"
        8. SD-Karte von PC entfernen und Loxberry booten
        9. Validierung der Datenbank mit sqlite3 /opt/loxberry/log/system/logs_sqlite.dat.bkp "PRAGMA integrity_check"
        Wenn kein Fehler in Schritt 9 auftritt ist die Datenbank erfolgreich repariert und der Fehler in Selbsttest tritt nicht mehr auf.

        svethi Du darfst diesen Thread gerne dorthin verschieben wo er aus deiner Sicht richtig ist.

        Kommentar


        • svethi
          svethi kommentierte
          Kommentar bearbeiten
          Ich kann keine Threads verschieben. Es wäre auch viel einfacher wenn Du einfach gleich den richtigen Bereich raussuchst, bevor Du Andere wiederholt damit bemühen musst Deine Threads zu verschieben, die das ganze hier auch nur unbezahlt im Ihrer Freizeit machen.
      • 74homer
        LoxBus Spammer
        • 26.02.2019
        • 262

        #7
        svethi Welches ist der richtige Bereich für diesen Fehler?
        Und wie soll man sich entscheiden, wenn sowohl Hardware als auch Software als mögliche Ursache in Frage kommen?
        Nach der Eintritts-Wahrscheinlichkeit der Ursache?
        Du eröffnest hier eine weitere Diskussionsebene, die wenig zur Lösung des Problems beiträgt.
        Wäre es nicht sinnvoll, den Thread erst dann in den "richtigen Bereich" zu verschieben, wenn die Ursache identifiziert ist?
        Zuletzt geändert von 74homer; 28.12.2020, 23:49.

        Kommentar


        • svethi
          svethi kommentierte
          Kommentar bearbeiten
          Wenn Du mal nicht so viel Zeit mit der Suche nach fiktiven Fehlern aufbringen würdest und Dir das Forum mal ansehen würdest, wäre Dir DEIN wiederholter Fehler vielleicht aufgefallen ... hier geht es um Loxone, die Loxone Hardware, die Loxone Software und dass, was damit zusammen hängt. Deine Posts betreffen ausschließlich den Loxberry. Diesen Begriff verwendest Du ja auch selbst sogar. Es ist nicht einfach nur die falsche Rubrik, es ist komplett der falsche Bereich. Es ist schade, dass Du diesen Unterschied scheinbar nicht verstanden hast.
      • Sammy
        LoxBus Spammer
        • 23.08.2018
        • 413

        #8
        Hallo 74homer,

        mir drängt sich so langsam der Verdacht auf, dass Du viel Spaß am Trollen hast.

        Quelle:
        https://de.m.wikipedia.org/wiki/Troll_(Netzkultur)

        Mal ehrlich:
        - wer wühlt sich freiwillig in so viele diverse Themenbereiche auf einmal rein,
        - stört sich parallel am fehlenden Icon für die Systemzeit des Loxberry,
        - findet bzw. produziert Fehler die komischerweise nur beim Troll auftauchen und
        - hat dann noch Spaß daran, den (selbst?) zerschossenen Loxberry wieder zu flicken und dafür eine Lösung zu präsentieren?

        Ach so - zurück zur eigentlichen Frage - eine Ramdisk findet im Arbeitsspeicher statt. Dort wiederholt einen "harten" Schreibfehler hinzubekommen geht aus meiner Sicht nur durch eine falsche Betriebsspannung, Hardwaredefekt oder Übertakten des Rechners (irgendwann kommt der Datenbus auch mal aus dem Takt).

        Möge mein Posting unangebracht oder gegen die Regeln verstoßen, so tut es mir leid und bin mit jeglichen Sanktionen einverstanden.

        Schöne Grüße,
        Michael

        Kommentar

        • 74homer
          LoxBus Spammer
          • 26.02.2019
          • 262

          #9
          Ich habe den Eindruck, dass einige Foren-Mitglieder Gefallen daran finden, andere zu belehren.
          Es geht ihnen nicht um die Identifikation der Ursache oder Bereitstellung einer Lösung.
          Stattdessen werden die anderen herabgesetzt, lächerlich gemacht, Behauptungen auf- und Fakten in Frage gestellt.
          Wenn ihr euch jetzt angesprochen fühlt, dann ignoriert doch einfach zukünftig meine Postings - einfach nur um Zeit zu sparen.



          Kommentar

          • Sammy
            LoxBus Spammer
            • 23.08.2018
            • 413

            #10
            Hallo Homer,

            ich möchte nicht belehren noch lächerlich machen. Für die Belehrung von anderen sorgst Du ja selbst (...).

            Apropos Lösungen, konstruktive Ansätze/Fragen werden von Dir gerne mal ignoriert. Lieber gehst Du Deinen komplizierten Weg (Datenbankreparatur). Da ist grundsätzlich nichts Verwerfliches dran! Die Energie könntest aber vielleicht sinnvoller bei der Programmierung eines eigenen Programms/Plugins einsetzen. Oder um sich tiefer in die Materie einzulesen und die geplante Funktionsweise des Loxberry zu verstehen/zu nutzen.

            Im Loxberry stecken von außen betrachtet viel Wissen und unzählige Arbeitsstunden drin. Die
            Kiste läuft bei mir sehr zuverlässig schon über mehrer Jahre hinweg ohne das ich da selbst aktiv werden muss. Und aus meiner Sicht ist hier ganz besonders wichtig:

            Never touch a running system.

            Wenn man über die Konsole oder den Dateimanager ins Dateisystem eines Linux System eingreift ist die Gefahr groß, dass Dateien falsche Attribute oder falschen Benutzerrechte zugeordnet werden und dadurch der reibungslose Betrieb nicht mehr gewährleistet ist oder das nächste Update auf Fehler läuft. Deswegen sehe ich auch die Datenbankkorrektur kritisch. Um ein Vergleich zu Windows zu ziehen, wenn man dort fleißig mit Regedit optimiert, hat man schnell ein "individuelles" System was nur noch eingeschränkt/gar nicht mehr funktioniert.

            Zurück zum Forum - die Fehlersuche aus der Ferne ist immer schwierig, vor allem, weil man nicht weiß, an welchen Schrauben schon gedreht wurde oder auf welchen System/welche Version gerade gearbeitet wird. Bitte mehr Infos, wie und nach welcher Vorgeschichte die Fehler bei Dir auftraten und ob sie (durch was) reproduziert werden können.

            Apropos - Anrede und Verabschiedung schadet der Höflichkeit im Forum nicht (nur Hinweis, keine Belehrung).


            Schöne Grüße,
            Michael

            Kommentar

            Lädt...