Fehlermeldungen im Log aus 57_Calendar.pm

Begonnen von Eisingstone, 08 Oktober 2014, 12:09:33

Vorheriges Thema - Nächstes Thema

Eisingstone

Hallo zusammen,

habe heute mal das Global LogFile der aktuellen Woche gecheckt und festgestellt das diese jetzt nach 2 Tagen schon ~ 130 MB groß ist.
Folgender Teil kommt dauernd vor und müllt das Log voll.


2014.10.08 11:45:36 1: PERL WARNING: Use of uninitialized value $key in hash element at ./FHEM/57_Calendar.pm line 89.
2014.10.08 11:45:36 3: stacktrace:
2014.10.08 11:45:36 3:     main::__ANON__                      called by ./FHEM/57_Calendar.pm (89)
2014.10.08 11:45:36 3:     ICal::Entry::addproperty            called by ./FHEM/57_Calendar.pm (137)
2014.10.08 11:45:36 3:     ICal::Entry::parseSub               called by ./FHEM/57_Calendar.pm (135)
2014.10.08 11:45:36 3:     ICal::Entry::parseSub               called by ./FHEM/57_Calendar.pm (135)
2014.10.08 11:45:36 3:     ICal::Entry::parseSub               called by ./FHEM/57_Calendar.pm (109)
2014.10.08 11:45:36 3:     ICal::Entry::parse                  called by ./FHEM/57_Calendar.pm (923)
2014.10.08 11:45:36 3:     main::Calendar_GetUpdate            called by ./FHEM/57_Calendar.pm (798)
2014.10.08 11:45:36 3:     main::Calendar_Wakeup               called by ./FHEM/57_Calendar.pm (1086)
2014.10.08 11:45:36 3:     main::Calendar_Define               called by fhem.pl (2902)
2014.10.08 11:45:36 3:     main::CallFn                        called by fhem.pl (1570)
2014.10.08 11:45:36 3:     main::CommandDefine                 called by fhem.pl (966)
2014.10.08 11:45:36 3:     main::AnalyzeCommand                called by fhem.pl (847)
2014.10.08 11:45:36 3:     main::AnalyzeCommandChain           called by fhem.pl (1101)
2014.10.08 11:45:36 3:     main::CommandInclude                called by fhem.pl (1201)
2014.10.08 11:45:36 3:     main::CommandRereadCfg              called by fhem.pl (966)
2014.10.08 11:45:36 3:     main::AnalyzeCommand                called by fhem.pl (847)
2014.10.08 11:45:36 3:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (1918)
2014.10.08 11:45:36 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (1716)
2014.10.08 11:45:36 3:     main::FW_style                      called by ./FHEM/01_FHEMWEB.pm (736)
2014.10.08 11:45:36 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.10.08 11:45:36 3:     main::FW_Read                       called by fhem.pl (2902)
2014.10.08 11:45:36 3:     main::CallFn                        called by fhem.pl (594)



Hat jemand eine Ahnung woran das liegen kann und evtl. eine Lösung dafür?
Update wird regelmäßig gemacht.

Update: LogFile von letzter Woche gescheckt, dort sind keine Probleme erkennbar.


Danke und besten Gruß
Stefan
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

Dr. Boris Neubert

Hallo,

ich schaue mir gelegentlich an, was die Perl-Warnung auslösen könnte.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Eisingstone

Hallo Boris,

vielen dank und sorry das ich den falsche Threat genommen habe, mir ist nur aufgefallen das seit Montag diese Meldungen aufgetaucht sind.
Natürlich können auch die Änderungen von Rudi jetzt noch mit reinkommen und so das LogFile nahezu explodieren lassen.
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

betateilchen

Zitat von: Dr. Boris Neubert am 09 Oktober 2014, 10:28:55
ich schaue mir gelegentlich an, was die Perl-Warnung auslösen könnte.

Hallo Boris,
der Fehler kommt aus der addproperty() und tritt auf, wenn Deine regex auf $line keinen Wert für $key liefert.


  my ($key,$parts,$parameter);
  if($line =~ /^([\w\d\-]+)(;(.*))?:(.*)$/) {
    $key= $1;


Dann ist die Variable $key zwar definiert, aber ohne Inhalt. Ein paar Zeilen später versuchst Du dann aber, mit diesem Wert zu arbeiten:


  $self->{properties}{$key}= {
      PARTS => "$parts",
      VALUE => "$parameter"
  };

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

Dr. Boris Neubert

Danke für die Voranalyse. Ich denke, dass die geschilderte Problematik bei Fortsetzungszeilen auftritt.

Das ICal-Format erlaubt Fortsetzungszeilen, die ich aber nicht konsequent auswerte. Insbesondere die Terminbeschreibungen führen zu Zeilenumbrüchen, die dann nicht dem vom Modul erwarteten Format entsprechen. Ich habe mir das schon notiert in meiner Todo-Abteilung im Kopf des Moduls, weil ich dazu die Fehlermeldungen auch bekomme.

Durch die Ausgabe der Stacktrace explodieren jetzt die Logs. Damit müssen wir erstmal leben.

OT: es wäre besser, Stacktrace nur optional zu haben, attr global stacktrace 1. Ich schlage das mal vor.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dietmar63

Wenn es optional gemacht wird schalten alle den stacktrace ab, und die Fehlermeldungen verschwinden und nichts wird gefixt. Das Problem wird uns noch einige Tage begleiten,. Dann sollte das gröbste behoben sein.

Die Welle kommt im Moment nur ganz langsam, weil nicht jeder Updates durchführt.

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

Die Diskussion ist obsolet, da Rudi das Abschalten (glücklicherweise) bereits eingebaut hat.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dietmar63

ok, ok!

hatte ich noch nicht gesehen.
Vielleicht hat der eine oder andere wirklich ein wenig viel damit zu tun, was nun hoch kommt.

Man kann ja auch das Gerät solange daktivieren, bis ein Fix da ist.

Für Anfänger und uns dürfte es eine große Hilfe sein, wenn der stacktrace standardmäßig eingeschaltet ist und sie sich an erste Notifys heranwagen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

Zitat von: Dr. Boris Neubert am 09 Oktober 2014, 13:23:53
Danke für die Voranalyse. Ich denke, dass die geschilderte Problematik bei Fortsetzungszeilen auftritt.

Im Moment reicht es offenbar, die bereits genannte Zeile wie folgt zu ändern:

  my ($key,$parts,$parameter) = ("","","");

Damit bleiben bei mir die unerwünschten Warnungen auch bei aktiviertem stacktrace aus.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Hallo,

Calendar verarbeitet nun Fortsetzungszeilen (Zeilen, die mit einem Whitespace beginnen werden ohne CR oder LF an die vorige Zeile angehängt).

Entspricht das Ergebnis nicht der erwarteten Syntax, wird die Zeile weggeworfen.

Damit erscheinen bei mir keine Meldungen mehr im Log.

Eingecheckt. Morgen per Update verfügbar.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!