Fehler - DbLog myDbLog: DBLog_Push - DB Session dead! - seit Update

Begonnen von Marcell, 01 Mai 2016, 22:14:36

Vorheriges Thema - Nächstes Thema

Marcell

Hallo,

seit einem Update (fhem) und PI2 heute entstehen folgende Einträge im Sekundentakt in der Fhem-Log:
2016.05.01 22:06:11 1: DbLog myDbLog: DBLog_Push - DB Session dead! - Can't call method "ping" on unblessed reference at ./FHEM/93_DbLog.pm line 578.
2016.05.01 22:06:11 1: DbLog myDbLog: DBLog_Push - DB Session dead! - Can't call method "ping" on unblessed reference at ./FHEM/93_DbLog.pm line 578.

Ich habe bereits mehrmals "shutdown restart" / "save" / neustart des PIs und auch andere 93_DbLog.pm Versionen getestet, immer der gleiche Fehler im Log.

Ich konnte leider auch keine ähnlichen Fälle dazu finden, weder Forum noch Google.


Kann mir hier jemand weiterhelfen, warum wird "DB Session dead" gemeldet?

Ansonsten scheint alles zu funktionieren.

Vielen Dank im Voraus!

Gruß
Marcello

rapster

Hi Marcell,

Ich denke nicht dass du es mit einer alten Version getestet hast, sonst würde der Fehler definitiv nicht mehr kommen.
Nimm aus deinem restoreDir die letzte /FHEM/93_DbLog.pm, mit der sollte zumindest dein Problem verschwinden. (Oder: https://sourceforge.net/p/fhem/code/11334/tree//trunk/fhem/FHEM/93_DbLog.pm?format=raw )

Welche Datenbank (und Version der Datenbank) verwendest du?
Welche Perl Version verwendest du?


Gruß
Claudiu

Marcell

Hi Claudiu,

erstmal danke für die schnelle Hilfe, top!

Hat auch gleich funktioniert mit der 93_DbLog.pm aus dem restoreDir, das Verzeichnis kannte ich noch nicht.

Perl Version ist die 5.14.2

Laut meiner db.conf verwende ich die SQLite (Versionsinfo finde ich gerade nicht)


Vielen Dank!

Beste Grüße
Marcello

Wolfgang Hochweller

Ich hatte das gleiche Problem.
Das Einspielen der alten 93_DbLog.pm loest zwar das Fehlerproblem,
aber das Verbindungsproblem :
logdb         Waiting for connection

bekomme ich noch nicht geloest.

Rechte etc., sollten alle korrekt sein, weitere Fehlermeldungen habe ich nicht.

Alex85

Ich habe das gleiche Problem nach dem Wechsel auf ein Raspberry PI 3.
Auch das Einspielen des alten Moduls hat dies nicht gelöst.

Was kann man noch probieren?!

2016.07.23 13:24:27 1: DbLog myDbLog: DBLog_Push - DB Session dead! - Can't call method "ping" on unblessed reference at ./FHEM/93_DbLog.pm line 578.

pcjogi

Hallo zusammen,

ich habe gleiches Problem mit gleicher Fehlermeldung. Einspielen von vorherigen Versionen brachten keinen Erfolg bzw. weitere Fehler bzgl. nicht initialisierter Variable etc.

Ich nutze die 93_DbLog.pm mit der $ID lt. Sourcecode vom 21.7.2016 5:40:59Z

Ich muss dazu sagen, dass ich eine laufende fhem Instanz (auf Raspberry) habe, die gegen eine MySQL Datenbank (mariadb auf Synology) funktioniert. Hier ist eine ältere 93_DbLog installiert (Version habe ich nicht zur Hand). Der Versuch die aktuelle Installation mit der DbLog vom 21.7. an diese Datenbank zu verbinden funktionierte auch nicht. Auch eine neue MySql Datenbank auf einem Debian System brachte keinen Erfolg. Da meine Perl Kenntnisse bei weitem (noch) nicht ausreichen kann ich wenig beim debuggen helfen.

Gibt es schon einen Ansatz wo der Fehler liegen könnte?

Zur Umgebung fhem ist vollständig upgedated. Das Debian System ist vollständig neu und die MySQL Datenbank ist auch eine aktuelle neue Installation. Alle drei Komponenten laufen auf den gleichen physischen System.

Danke
Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

betateilchen

Zitat von: pcjogi am 27 Juli 2016, 13:15:34
Das Debian System ist vollständig neu und die MySQL Datenbank ist auch eine aktuelle neue Installation.

Genau das ist das Problem. Die Ursache für die Fehlermeldung liegt nicht in fhem, sondern im mySQL Datenbanktreiber von Perl, der im Hintergrund benutzt wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pcjogi

OK und was kann ich tun bzw. kann man den updaten? Und wenn ja wie? Oder gibt es im Moment keine Möglichkeit das zum laufen zu bekommen?

Ein paar Tests bei mir brachten folgendes:

Wenn ich meine funktionierende fhem Instanz (fhem auf Raspi und DB auf Synology) so umkonfiguriere, dass ich die neue DB auf dem Debian System nutzen will erhalte ich auch auf dem Raspi die gleiche Fehlermeldung.

Das heißt dann die DB auf dem Debian ist nicht ok, oder?

Die MySQL Version ist 5.5.50


Danke

Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

franky08

Wie betateilchen schon schrieb, der Datenbanktreiber, könnte an libdbi-perl liegen.
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

betateilchen

Was ich nicht verstehe: Der Aufruf von $dbh->ping steht in 93_DbLog.pm gar nicht in Zeile 578...

Kann mal jemand testen, die Zeile 582 auszukommentieren


#    if ( !$dbh || not $dbh->ping ) {


und stattdessen zu verwenden


    if ( !$dbh ) {

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pcjogi

Kann ich morgen erst machen

Gesendet von meinem GT-N8020 mit Tapatalk

Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

pcjogi

Nach ändern der Zeile kommt die Fehlermeldung nicht mehr, aber es bleibt bei einem waiting for Connection. Ich werde nachher noch folgendes Testen:

Verbindung vom fhem auf Raspi auf MySQL auf Debian -> todo
Verbindung vom fhem auf Raspi auf MariaDB/MySQL auf Synology -> funktioniert
Verbindung vom fhem auf Debian auf MySQL auf Debian -> Fehler
Verbindung vom fhem auf Debian auf MariaDB/MySQL auf Synology -> todo

Bisher sieht es wirklich so aus, das die Aussage von Betateilchen, die Ursache liegt im Perl DB Treiber, richtig ist. Nur was kann man auf der Debian Installation ändern damit es geht?

Danke


Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

betateilchen

Ich war bei meinem Vorschlag nicht davon ausgegangen, dass er die Ursache behebt, aber die jetzt andere Fehlermeldung ist genau das, was ich erwartet hatte.

Die Sache mit dem "Waiting for connection" hatten wir hier im Forum in den letzten Tagen schon an anderer Stelle.

Was man auf Debian Seite tun kann? Warten, bis ein Update des Datenbanktreibers kommt, der das Problem behebt oder ein Perl downgrade auf eine funktionierende Version durchführen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pcjogi

Auf welche Version muss ich zurück?
Danke


Auch wenn perl der Übeltäter ist hier das Update auf die angekündigten Tests.

raspi mit Perl-Version     : "This is perl 5, version 20, subversion 2 (v5.20.2) built for arm-linux-gnueabihf-thread-multi-64int"
Debian mit Perl-Version  : "This is perl 5, version 20, subversion 2 (v5.20.2) built for i586-linux-gnu-thread-multi-64int"
MariaDB/MySQL Version : 5.5.49-MariaDB
MySQL auf Debian         : 5.5.50-0+deb8u1

Verbindung vom fhem auf Raspi auf MySQL auf Debian -> funktioniert
Verbindung vom fhem auf Raspi auf MariaDB/MySQL auf Synology -> funktioniert
Verbindung vom fhem auf Debian auf MySQL auf Debian -> Fehler
Verbindung vom fhem auf Debian auf MariaDB/MySQL auf Synology ->Fehler

Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

Zilon

Hallo zusammen,

bei mir funktioniert das auf dem Raspi mit
"This is perl 5, version 20, subversion 2 (v5.20.2) built for arm-linux-gnueabihf-thread-multi-64int"
zu einem Synology NAS mit MariaDB auch nicht.

Nutze ich den MariaDB client auf der Console beim Raspi, kann ich mich problemlos verbinden. Gibts, auch wenn die Perlversion die Gleiche ist, Unterschiede bei den Datenbanktreibern in Perl?

VG
Zilon


EDIT: Ich habe mal mit einem kleinen Perlscript auf der Console herumgetestet. Letztendlich funktioniert es jetzt. Bei mir waren die Datenbankpasswörter wohl nicht richtig gesetzt oder funktionierten aufgrund von Soderzeichen nicht richtig. Unten seht ihr das Testscript.

!/usr/bin/perl

# PERL MODULES WE WILL BE USING
use DBI;
use DBD::mysql;

# HTTP HEADER
print "Content-type: text/html \n\n";

# CONFIG VARIABLES
$platform = "mysql";
$database = "fhem";
$host = "host_ip";
$port = "3306";
$tablename = "current";
$user = "My_Username";
$pw = "My_Password";
#DATA SOURCE NAME
$dsn = "dbi:mysql:database=$database:host=$host:port=$port";


# PERL DBI CONNECT
$DBIconnect = DBI->connect($dsn, $user, $pw);