ConfigDB: Save Config funktioniert nicht

Begonnen von arokh12, 21 Februar 2022, 09:29:33

Vorheriges Thema - Nächstes Thema

arokh12

Guten Morgen,
Seit ein paar Tagen habe ich das Problem, dass ich meine Datenbank nicht mehr speichern kann. Als Fehlermeldung kommt immer
DBD::mysql::db do failed: Lock wait timeout exceeded; try restarting transaction at configDB.pm line 575.
DBD::mysql::db do failed: Lock wait timeout exceeded; try restarting transaction at configDB.pm line 575.
2022.02.21 09:26:23 1: PERL WARNING: Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle database=FHEM_Marius;host=192.168.178.200;port=3306 at configDB.pm line 575.


Hat irgendjemand eine Lösung für das Problem?

Das letzte was ich geändert hatte, war die maxVersion auf 5.

Vielen Dank im voraus
arokh12

betateilchen

Mit den maxversions hat das nichts zu tun.

An der betroffenen Stelle wird versucht, den Inhalt der Datenbanktabelle fhemstate zu löschen, bevor die states neu geschrieben werden.
Dieses Löschen funktioniert bei Dir nicht, weil die Tabelle nicht gesperrt werden kann.

Hast Du eventuell mehrere FHEM Instanzen, die auf die gleiche Konfigurationsdatenbank zugreifen?
Auf welcher Plattform läuft die Datenbank?

Was Du testen kannst (manuell auf Systemconsole):


  • dump der Tabelle, um die Werte nicht komplett zu verlieren
  • Tabelle manuell leeren, um zu sehen, ob der Fehler dann auch auftritt ("delete from fhemstate")

Wenn das manuelle leeren klappt, kannst Du den dump wieder einlesen.
Wenn das manuelle Leeren nicht klappt, kannst Du die ganze Datenbanktabelle (nicht die Datenbank!!!) löschen und neu anlegen.

Grundsätzlich ist das ein Einzelschicksal innerhalb Deiner Installation, kein generelles Problem.
An dieser Stelle hat sich im Code auch seit langem nichts mehr geändert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

arokh12

Zitat von: betateilchen am 21 Februar 2022, 09:48:05
Mit den maxversions hat das nichts zu tun.

An der betroffenen Stelle wird versucht, den Inhalt der Datenbanktabelle fhemstate zu löschen, bevor die states neu geschrieben werden.
Dieses Löschen funktioniert bei Dir nicht, weil die Tabelle nicht gesperrt werden kann.

Hast Du eventuell mehrere FHEM Instanzen, die auf die gleiche Konfigurationsdatenbank zugreifen?
Auf welcher Plattform läuft die Datenbank?

Was Du testen kannst (manuell auf Systemconsole):


  • dump der Tabelle, um die Werte nicht komplett zu verlieren
  • Tabelle manuell leeren, um zu sehen, ob der Fehler dann auch auftritt ("delete from fhemstate")

Wenn das manuelle leeren klappt, kannst Du den dump wieder einlesen.
Wenn das manuelle Leeren nicht klappt, kannst Du die ganze Datenbanktabelle (nicht die Datenbank!!!) löschen und neu anlegen.

Grundsätzlich ist das ein Einzelschicksal innerhalb Deiner Installation, kein generelles Problem.
An dieser Stelle hat sich im Code auch seit langem nichts mehr geändert.

Danke für deine Hilfe. Ich habe jetzt mal versucht die Tabelle fhemstate zu leeren, bzw. die Tabelle zu löschen. Beim leeren kommt immer die Fehlermeldung: Beim Warten auf eine Sperre wurde die zulässige Wartezeit überschritten.

Sonst noch eine Idee? Falls nicht, versuche ich einfach mal ein Backup von den letzten Tagen wiederherzustellen.

Mal kurz zum Aufbau:
Ich habe einen MariaDB Server, wo die Daten von FHEM reingeschrieben werden. Ich habe mehrere Instanzen von FHEM alle mit configDB am laufen. Es funktioniert bei allen problemlos, außer halt bei der.

Gruß
arokh12

betateilchen

Zitat von: arokh12 am 21 Februar 2022, 14:10:07
Ich habe jetzt mal versucht die Tabelle fhemstate zu leeren, bzw. die Tabelle zu löschen. Beim leeren kommt immer die Fehlermeldung: Beim Warten auf eine Sperre wurde die zulässige Wartezeit überschritten.

Naja, das ist die gleiche Fehlermeldung, die Du ja auch FHEM bekommst. Das Sperren funktioniert nicht, da stimmt irgendwas mit Deiner Datenbank selbst nicht.
Hast Du den Datenbankserver schonmal neu gestartet?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

arokh12

Zitat von: betateilchen am 21 Februar 2022, 14:22:12
Naja, das ist die gleiche Fehlermeldung, die Du ja auch FHEM bekommst. Das Sperren funktioniert nicht, da stimmt irgendwas mit Deiner Datenbank selbst nicht.
Hast Du den Datenbankserver schonmal neu gestartet?

Ja, habe ich gemacht. Allerdings ohne Erfolg

betateilchen

Wenn Du schon nach einem Neustart des Datenbankservers die Tabelle nicht manuell leeren kannst (ohne dass FHEM läuft) liegt das Problem wohl direkt in Deiner Datenbank. Da kann ich Dir leider nicht weiter helfen, das musst Du schon lokal finden und beheben.

Vielleicht einen dump machen, die Datenbank löschen und aus dem dump neu anlegen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

arokh12

Moin,
danke für deine nochmals für deine Hilfe. Ich habe jetzt mal ein Backup der letzten Tage eingespielt. Jetzt funktioniert es wieder problemlos. Was jetzt genau das Problem war, keine Ahnung. Auf jeden Fall funktioniert es jetzt wieder.

Viele Grüße
arokh12