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
Hallo,
ich schaue mir gelegentlich an, was die Perl-Warnung auslösen könnte.
Grüße
Boris
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.
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"
};
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
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.
Die Diskussion ist obsolet, da Rudi das Abschalten (glücklicherweise) bereits eingebaut hat.
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.
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.
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