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
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
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
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.
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.
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
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.
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
Wie betateilchen schon schrieb, der Datenbanktreiber, könnte an libdbi-perl liegen.
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 ) {
Kann ich morgen erst machen
Gesendet von meinem GT-N8020 mit Tapatalk
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
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.
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
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);
ZitatDbLog myDbLog: DBLog_Push - DB Session dead! - Can't call method "ping" on unblessed reference at ./FHEM/93_DbLog.pm line 578.
Ich hatte genau diese Fehlermeldung beim Aufsetzen eines komplett neue FHEM Servers auf einem Raspi3.
Während der bisherige FHEM Server auf dem Raspi1 fehlerfrei läuft.
sudo apt-get install libdbd-mysql-perl
hat bei mir geholfen.
Guten Abend!
Hmmm....also ich habe die Meldung leider immernoch. (bzw. seit dem ersten Tag)
DbLog logdb: DBLog_Push - DB Session dead! - Can't call method "ping" on unblessed reference at ./FHEM/93_DbLog.pm line 582
Ist ein raspi1.
mysql und die perl DB-Treiber sind alle aktuell. (wie der ganze raspi!)
Bleibt mir etwa nichts anderes übrig als die Datenbank auf ein anderes System auszulagern ???? :-( :-(
Viele Grüße
Oliver
Hallo,
ich habe FHEM auf raspi 1 und raspi 3 laufen und es funktioniert jetzt auf beiden.
Auf dem neuen raspi 3 hatte ich auch das Problem, dass der Connect immer auf disconenct stand.
Ich nutze die Perl version
This is perl 5, version 20, subversion 2 (v5.20.2).
Ich habe dann das Logging auf 5 gestellt und dort habe ich dann nach mysql gesucht und den Fehler gefunden.
Ich hatte in der /opt/fhem/contrib/dblog/db.conf zwar die Anpassungen für User und Passwort gemacht, aber den Eintrag für hostname nicht angepasst. Dort steht im standard db und nicht localhost.
Eintrag geändert und fhem restartet und dann ging der Connect.
Den Connect String findet man auch im Device vom Type DbLog im Feld "dbconn".
Sollte auch das Problem haben, dann könnte das helfen.
Es wäre vielleicht sinnvoll, wenn man den Eintrag in der db.conf für hostname auf localhost ändert bei der Auslieferung.
Gruß
Mirko
Hab's auch gerade mal wieder einrichten wollen mit hier benanntem Fehler.
Lösung war dann statt meiner eigenen ./db.conf die unter ./contrib/dblog/db.conf entsprechend anzupassen und zu verwenden.
Beide haben den selben Inhalt. Komisch...
Gruß
Dan