Ein "update full" hat mein Problem gelöst (auf version $Id: fhem.pl 8499 2015-04-30 )
Keine Fehler mehr, musste allerdings die verwendeten *.gplot files anfassen und Leerzeichen am Zeilenende manuell entfernen.
Hi,
ich hab die "Community Firmware mit FHEM" unter http://fhem.de/fhem-5.5-fb7390.image auf meiner FB7390 installiert und direkt einen update gestartet (also noch mit der orginalen fhem.cfg). Nach beedetem uprade und einem "shutdown restart" finde ich folgenden Eintrag sobald ich mich an der Weboberfläche anmeden will (solange ich nicht die Weboberfläche aufrufe scheint fhem zu laufen da sich die logfiles aktualisieren und der Prozess läuft).
# tail -f log/fhem-2015-04.log
Server started with 79 defined entities (version $Id: fhem.pl 8430 2015-04-13 17:03:56Z rudolfkoenig $, os linux, user fhem, pid 2453)
2015.04.14 13:32:41 1: PERL ERROR: Can't locate /var/InternerSpeicher/fhem/lib/perl5/5.12.2/auto/Compress//Zlib/autosplit.ix in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-..
..
..
2015.04.14 13:32:41 3: stacktrace:
2015.04.14 13:32:41 3: main::__ANON__ called by /var/InternerSpeicher/fhem/lib/perl5/5.12.2/AutoLoader.pm (169)
2015.04.14 13:32:41 3: (eval) called by /var/InternerSpeicher/fhem/lib/perl5/5.12.2/AutoLoader.pm (169)
2015.04.14 13:32:41 3: AutoLoader::import called by /var/InternerSpeicher/fhem/lib/perl5/5.12.2/Compress/Zlib.pm (6)
2015.04.14 13:32:41 3: Compress
...
reinstall bereits ausprobiert, genau gleiches Fehlerbild.
Danke
Markus
Fehlendes Perl Modul
Hier ähnliches Problem nach dem letzten Update der fhem.pl auf Version "fhem.pl 8430 2015-04-13 17:03:56Z" mit unten stehender Fehlermeldung (FHEM startet dann auch nicht). Lösung: fhem.pl aus dem Backup auf Version "$Id: fhem.pl 8320 2015-03-29 10:49:31Z" zurückspielen, dann ist der Fehler weg (das benötigte Perl Modul war und ist installiert).
2015.04.14 14:36:56 1: PERL ERROR: Can't locate Authen/SASL/XS.pm in @INC (you may need to install the Authen::SASL::XS module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl . ./FHEM) at (eval 85) line 2.
2015.04.14 14:36:56 3: stacktrace:
2015.04.14 14:36:56 3: main::__ANON__ called by (eval 85) (2)
2015.04.14 14:36:56 3: (eval) called by /usr/share/perl5/Authen/SASL.pm (76)
2015.04.14 14:36:56 3: Authen::SASL::client_new called by /usr/share/perl5/XML/Stream.pm (2155)
2015.04.14 14:36:56 3: XML::Stream::SASLClient called by /usr/share/perl5/Net/XMPP/Protocol.pm (1958)
2015.04.14 14:36:56 3: Net::XMPP::Protocol::AuthSASL called by /usr/share/perl5/Net/XMPP/Protocol.pm (1807)
2015.04.14 14:36:56 3: Net::XMPP::Protocol::AuthSend called by ./FHEM/70_Jabber.pm (384)
2015.04.14 14:36:56 3: main::Jabber_CheckConnection called by ./FHEM/70_Jabber.pm (233)
2015.04.14 14:36:56 3: main::Jabber_PollMessages called by fhem.pl (2574)
2015.04.14 14:36:56 3: main::HandleTimeout called by fhem.pl (540)
2015.04.14 14:36:57 1: CallBlockingFn: Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2015.04.14 14:36:57 1: PERL ERROR: Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 125.
2015.04.14 14:36:57 3: stacktrace:
2015.04.14 14:36:57 3: main::__ANON__ called by FHEM/Blocking.pm (125)
2015.04.14 14:36:57 3: main::BlockingInformParent called by FHEM/Blocking.pm (94)
2015.04.14 14:36:57 3: main::BlockingCall called by ./FHEM/73_PRESENCE.pm (535)
2015.04.14 14:36:57 3: main::PRESENCE_StartLocalScan called by fhem.pl (2574)
2015.04.14 14:36:57 3: main::HandleTimeout called by fhem.pl (540)
2015.04.14 14:36:58 1: CallBlockingFn: Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2015.04.14 14:36:58 1: PERL ERROR: Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 125.
2015.04.14 14:36:58 3: stacktrace:
2015.04.14 14:36:58 3: main::__ANON__ called by FHEM/Blocking.pm (125)
2015.04.14 14:36:58 3: main::BlockingInformParent called by FHEM/Blocking.pm (94)
2015.04.14 14:36:58 3: main::BlockingCall called by ./FHEM/73_PRESENCE.pm (535)
2015.04.14 14:36:58 3: main::PRESENCE_StartLocalScan called by fhem.pl (2574)
2015.04.14 14:36:58 3: main::HandleTimeout called by fhem.pl (540)
2015.04.14 14:37:00 1: CallBlockingFn: Can't connect to localhost:7072: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2015.04.14 14:37:00 1: PERL ERROR: Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 125.
2015.04.14 14:37:00 3: stacktrace:
2015.04.14 14:37:00 3: main::__ANON__ called by FHEM/Blocking.pm (125)
2015.04.14 14:37:00 3: main::BlockingInformParent called by FHEM/Blocking.pm (94)
2015.04.14 14:37:00 3: main::BlockingCall called by ./FHEM/73_PRESENCE.pm (535)
2015.04.14 14:37:00 3: main::PRESENCE_StartLocalScan called by fhem.pl (2574)
2015.04.14 14:37:00 3: main::HandleTimeout called by fhem.pl (540)
Hallo,
kann ich bestätigen, eben einen Update durchgeführt und nach kurzer Zeit nach einem shutdown restart das im Log:
2015.04.14 14:38:30 1: PERL WARNING: Scalar found where operator expected at (eval 316) line 2, near "1 $NAME"
2015.04.14 14:38:30 3: eval: my $EVTPART0='presence:';my $TYPE='SONOSPLAYER';my $EVTPART1='appeared';my $EVENT='presence: appeared';my $NAME='Sonos_Kueche';{
Log 1 $NAME, 1, "$NAME: appeared, setting favorite to EgoFM";
if (ReadingsVal($NAME, 'numberOfTracks', -1) == 0) {
fhem "set $NAME StartFavourite /ego/ NoStart" ;
fhem "set $NAME Volume 7" ;
}
}
2015.04.14 14:38:30 3: n_BAD.Sonos.appeared return value: Not enough arguments for main::Log at (eval 316) line 2, near "1 $NAME"
syntax error at (eval 316) line 2, near "1 $NAME"
2015.04.14 14:38:30 1: in ATTR
2015.04.14 14:38:30 1: in ATTR
2015.04.14 14:38:33 1: PERL ERROR: URL must be absolute at /usr/share/perl5/LWP/UserAgent.pm line 232.
2015.04.14 14:38:33 3: stacktrace:
2015.04.14 14:38:33 3: main::__ANON__ called by /usr/share/perl5/LWP/UserAgent.pm (232)
2015.04.14 14:38:33 3: LWP::UserAgent::prepare_request called by /usr/share/perl5/LWP/UserAgent.pm (268)
2015.04.14 14:38:33 3: (eval) called by /usr/share/perl5/LWP/UserAgent.pm (267)
2015.04.14 14:38:33 3: LWP::UserAgent::simple_request called by /usr/share/perl5/LWP/UserAgent.pm (282)
2015.04.14 14:38:33 3: LWP::UserAgent::request called by /usr/share/perl5/LWP/UserAgent.pm (410)
2015.04.14 14:38:33 3: LWP::UserAgent::get called by /usr/share/perl5/LWP/Simple.pm (36)
2015.04.14 14:38:33 3: LWP::Simple::get called by ./FHEM/00_SONOS.pm (7004)
2015.04.14 14:38:33 3: main::SONOS_DownloadReplaceIfChanged called by ./FHEM/00_SONOS.pm (1570)
2015.04.14 14:38:33 3: main::SONOS_Read called by fhem.pl (2971)
2015.04.14 14:38:33 3: main::CallFn called by fhem.pl (607)
Vor dem Update lief das System ohne diese Ausfälle, deshalb würde ich auf einen Fehler durch das Update tippen?
Update:
Man könnte ja meinen es liegt an dem bei mir eingesetzten Code im notify mit "appeared", aber auch ohne dieses Notify geht das ganze nicht: (extra verbose 5 eingeschaltet)
2015.04.14 14:53:53 5: Sonos_SchlafzimmerRG: not on any display, ignoring notify
2015.04.14 14:53:53 5: Sonos_SchlafzimmerRG_Favourites: not on any display, ignoring notify
2015.04.14 14:53:53 5: Sonos_SchlafzimmerRG_Playlists: not on any display, ignoring notify
2015.04.14 14:53:53 5: Sonos_SchlafzimmerRG_Radios: not on any display, ignoring notify
2015.04.14 14:53:53 5: Triggering global (1 changes)
2015.04.14 14:53:53 5: Notify loop for global ATTR Sonos_Schlafzimmer model Sonos_S3
2015.04.14 14:53:53 5: statistics STATS.Power: Notify.260 Notification of 'global' received. Device not monitored.
2015.04.14 14:53:53 1: in ATTR
2015.04.14 14:53:53 1: in ATTR
2015.04.14 14:53:55 1: PERL ERROR: URL must be absolute at /usr/share/perl5/LWP/UserAgent.pm line 232.
2015.04.14 14:53:55 3: stacktrace:
2015.04.14 14:53:55 3: main::__ANON__ called by /usr/share/perl5/LWP/UserAgent.pm (232)
2015.04.14 14:53:55 3: LWP::UserAgent::prepare_request called by /usr/share/perl5/LWP/UserAgent.pm (268)
2015.04.14 14:53:55 3: (eval) called by /usr/share/perl5/LWP/UserAgent.pm (267)
2015.04.14 14:53:55 3: LWP::UserAgent::simple_request called by /usr/share/perl5/LWP/UserAgent.pm (282)
2015.04.14 14:53:55 3: LWP::UserAgent::request called by /usr/share/perl5/LWP/UserAgent.pm (410)
2015.04.14 14:53:55 3: LWP::UserAgent::get called by /usr/share/perl5/LWP/Simple.pm (36)
2015.04.14 14:53:55 3: LWP::Simple::get called by ./FHEM/00_SONOS.pm (7004)
2015.04.14 14:53:55 3: main::SONOS_DownloadReplaceIfChanged called by ./FHEM/00_SONOS.pm (1570)
2015.04.14 14:53:55 3: main::SONOS_Read called by fhem.pl (2971)
2015.04.14 14:53:55 3: main::CallFn called by fhem.pl (607)
Update 2:
Es liegt definitiv an der fhem.pl # $Id: fhem.pl 8430 2015-04-13 17:03:56Z rudolfkoenig $
Mit der Version: # $Id: fhem.pl 8320 2015-03-29 10:49:31Z rudolfkoenig $ funktioniert FHEM wieder wie vorher.
Hi,
danke für den Hinweis daß es evtl. an der Version 8430 liegt und nicht an mir :D . Nachdem ich jetzt auf die Version fhem.pl 3872 2013-09-07 zurückmuste (und sämtliche *.pm files auch von dieser Version restoren musste) noch eine Frage. Kann ich mit update nur bis auf 8320 upgraden?
@rudi:
Ich glaube, dass der Fehler mit der Änderung der fhem.pl hinsichtlich des Signal-Händlers
$sig{__DIE__} = sub {... }
zu tun hat.
Grundsätzlich ist der Gedanke richtig aber wahrscheinlich noch nicht flächendeckend korrekt umgesetzt.
Vielleicht kann jemand Rudi informieren.
und hier noch der Grund für die Erweiterung:
http://forum.fhem.de/index.php/topic,35796.msg284945.html#msg284945 (http://forum.fhem.de/index.php/topic,35796.msg284945.html#msg284945)
Wir konnten Mitch mit dieser Erweiterung helfen den Fehler für seine sporadischen Abstürze zu finden.
Leider ist die Änderung in der fhem.pl noch nicht ausreichend, bzw. die Installationen werden nicht in allen Fällen damit fertig.
Es wäre gut ein Muster zu finden. Welche Hardware/Software ist betroffen? Rpi? Fritten? ...
Ich meine, man kann durch einfügen eines neuen Signalhändlers in die 99_Utils den Signalhändler der fhem.pl überschreiben. Dann muss man die alte fhem.pl nicht zurücksichern:
$SIG{__DIE__} = sub {
my ($msg) = @_;
die @_;
};
Lt. Maintainer.txt wären die gesamten Beiträge heute besser hier
Zitatfhem.pl rudolfkoenig http://forum.fhem.de Sonstiges
untergebracht.
Hallo,
also irgendwie ist das anscheinend keine gute Idee mit dem globalen DIE-Handler.
Ich habe im Sonos-Modul die fragliche Stelle gerade in einen Eval-Block getan. Dieser wird stumpf ignoriert und das Programm beendet...
Diese Stelle habe ich jetzt anders umgebaut, allerdings habe ich an vielen Stellen den Fehlerabfang-Block mit eval gebaut. Wenn da jetzt überall fhem beendet wird, wird das kein Spaß werden...
Grüße
Reiner
Zitat von: Dietmar63 am 14 April 2015, 19:24:29
Es wäre gut ein Muster zu finden. Welche Hardware/Software ist betroffen? Rpi? Fritten? ...
Ich bin mir zwar unsicher, ob hier überhaupt noch Antworten genehm sind (weil das Thema anscheinend ins Unterforum Sonstiges gehört - vielleicht kann ein Mod den Thread im Bedarfsfall verschieben).
Ich möchte aber dennoch gerne zur Fehlersuche beitragen: Auf meinem System läuft FHEM unter Ubuntu 14.04 LTS auf einem "echten" Server, also kein Rpi (der wird nur für Openelec genutzt) und auch nicht auf einer Fritzbox (die wird allerdings mittelbar mit einbezogen, weil an ihr der Z-Wave USB-Stick hängt, der per Freetz/USB-IP an den Server weitergereicht wird). Kritisch ist mit der neuesten fhem.pl das Jabber-Modul 70_Jabber.pm. Kommentiere ich das Jabber-Device aus fhem.cfg aus, startet FHEM auch nach dem Update.
Es lag an dem gestern eingebauten __DIE__ Handler (siehe Forum #35796).
Habs wieder ausgebaut, und fhem.pl fuer update direkt ur Verfuegung gestellt.
ZitatIch bin mir zwar unsicher, ob hier überhaupt noch Antworten genehm sind
Du kannst Probleme zu FHEM posten wo du willst.
Wenn du aber möchtest das die Probleme auch gelöst werden sollte das passende Unterforum dafür ausgewählt werden.
Auf den Rest deines Untertons geh ich nicht weiter ein ...
Zitatweil das Thema anscheinend ins Unterforum Sonstiges gehört
Nicht nur anscheinend aber es erleichtert die Sache ungemein - nicht jeder Developer liest jeden Beitrag in jedem Unterforum.
Zitatvielleicht kann ein Mod den Thread im Bedarfsfall verschieben
Der Anfängerbereich hat schon länger keinen Moderator mehr.
Entweder bittest du einen Global Moderator oder einem Admin den Beitrag passend zu verschieben.
Erleichternd käme hinzu wenn du direkt schreiben könntest in welchen Bereich der Beitrag deiner Meinung nach gehören würde.
Das hat sich hier aber bereits erledigt da Rudi, wie des öfteren, seine Augen fast überall hat.
Ich denke ein globaler die-handler kann schon sinnvoll sein.
Allerdings sollten wir erst einmal im kleinen Kreis versuchen zu verstehen was der so anfängt und wie wir dann reagieren.
PERL WARNINGS haben sich ja auch etabliert.
Hallo zusammen,
da ist ja mein Fehler und ich dachte schon ich habe mal wieder irgendein Mist gemachst :-)
Kann es sein das deswegen FHEM abschmiert beim speichern der fhem.cfg?
Warum denn nicht die Routine in die 99_Utils einbauen?
Bei mir läuft sie ohne Probleme und hat mir sehr geholfen.
Bei mir das selbe wie bei alpha1974 jabber macht Problem seit dem neuesten Update
Sobald das rausfliegt ist Ruhe
@Mitch: Weil sie eine ERROR Meldung mit stacktrace auch im normalen Betrieb produziert.
Und weder finde ich das schoen, noch will ich jedem erklaeren, dass das so in Ordnung ist.
@inesa394: "seit dem neuestem Update" ist falsch.
Seit gestern Abend (siehe mein Posting) wid eine Version ohne diesen Handler verteilt.
Hallo Gemeinde,
habe seit gestern nach dem update fhem bis jetzt nicht wieder zum laufen bekommen. Habe die "fhem.pl 55 minutes ago rudolfkoenig [r8440] fhem.pl: add defmod command (Forum #36265)" eingespielt.
Beim Start über die Konsole des Raspi mit wheezy (auf aktuellen stand) gibt es folgende Fehlermeldungen:
pi@raspberrypi ~ $ sudo /etc/init.d/fhem start
Starting fhem...
Having no space between pattern and following word is deprecated at fhem.pl line 5000.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Operator or semicolon missing before " at fhem.pl line 5001.
Ambiguous use of & resolved as operator & at fhem.pl line 5001.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Having no space between pattern and following word is deprecated at fhem.pl line 5001.
Operator or semicolon missing before " at fhem.pl line 5002.
Ambiguous use of & resolved as operator & at fhem.pl line 5002.
Having no space between pattern and following word is deprecated at fhem.pl line 5003.
Bareword found where operator expected at fhem.pl line 5003, near "/div><div id= "l409" class="code_block"> <span class="nb">exit</span"
(Missing operator before an?)
Having no space between pattern and following word is deprecated at fhem.pl line 5003.
Can't modify constant item in predecrement (--) at fhem.pl line 2, near "Server: "
syntax error at fhem.pl line 2, near "Server:"
syntax error at fhem.pl line 5001, near "$ARGV<"
syntax error at fhem.pl line 5001, near ">||"
syntax error at fhem.pl line 5001, near ">)"
syntax error at fhem.pl line 5002, near "FHEM::WinService:"
syntax error at fhem.pl line 5002, near ">;"
syntax error at fhem.pl line 5003, near "/div><div id="l409" class="code_block"> <span class="nb">exit</span"
Unmatched right curly bracket at fhem.pl line 5004, at end of line
Unmatched right curly bracket at fhem.pl line 5005, at end of line
fhem.pl has too many errors.
Im fhem.log ist kein Eintrag.
Könnt Ihr helfen?
Danke
Viele Grüße
@Rudi: mit diesem Code am Anfang der 99_Utils habe ich aber im normalen Betrieb keine ERROR Meldungen.
$SIG{__DIE__} = sub {
my ($msg) = @_;
Log 1, "PERL ERROR: $msg";
stacktrace();
};
@Mitch: du nicht, aber andere, die keine vollstaendige Installation haben.
@Iron-R: fhem.pl ist 4189 Zeilen Lang (110849 Bytes). Wenn deine Version Fehler auf Zeile 5000/5001 meldet, dann ist sie mAn kaputt.
Kann mir jemand erklären warum die PERL ERROR mit die-handler auftreten ohne die-handler aber nicht.
???
Ich konnte jedenfals mit gesetzten $SIG{__DIE__} auf einem FB allerlei Meldungen bewundern.
Ja, aber warum nur dann wenn der die-handler gesetzt war.
Ich stelle mir das so vor, dass ohne $sig... Ein Standard - die - Handler das Sterben durchführen müsste,
Warum unterschlägt er dann die Meldungen aus der unvollständigen Installation?
Bei mir war es zum Beispiel so, dass dieses übliche "Exception-Handling" mittels eines umschließenden Eval-Blocks nicht mehr den Fehler abgefangen hat, sondern auch zum Beenden von Fhem geführt hatte (als dieser Handler noch drin war).
Wenn man also (wie ich) diverse Fehlerzustände auftreten lässt, um sie dann entsprechend aufzufangen, scheint das mit DIE-Handler nicht mehr wie gewünscht zu funktionieren...
Es scheint also erstmal keinen Standard-DIE-Handler zu geben (oder etwas anderes beeinflusst diesen Standard-Handler)...
Grüße
Reinerlein