Hallo zusammen,
bei der Fehlersuche in einem anderen Problem ist mir dies im Log aufgefallen:
2017.07.02 09:57:37 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 130.
2017.07.02 09:57:37 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 131.
dies sind die code Zeilen der "Trim" Funktion aus der ./FHEM/99_Utils.pm
Kenn jemand diese Warnung und deren Ursache?
attr global stacktrace 1
und dann wieder die Log schauen.
Die Fehlerursache ist doch ganz einfach: Die Funktion trim() wird ohne Parameter aufgerufen. Passiert normalerweise dann, wenn man die Funktion mit einer Variablen aufruft und in dieser Variablen nix drinsteht.
Ja klar. Aber wie kann man wissen, was (Modul? Perl code? myUtils?) die Funktion aufgerufen hat?
Ganz einfach. Es handelt sich um eine Funktion welche in der Regel nur vom User aufgerufen werden kann. Dieser User weiß eigentlich was er mal wann gemacht hat oder weiß zu mindest wie er an die Infos kommt. Denn er hat es ja mal eingerichtet.
ZitatDieser User weiß eigentlich was er mal wann gemacht hat
Sicher? Es gibt auch viele blinde Copy/Paste von Code aus Foren.... ;)
Ich weiß, aber das sollte dann bitte kein Problem mehr eines Helfenden sein.
Zitat
Meine persönliche Meinung!!!
Derjenige der gegen die Weltkugel tritt möge bitte auch wissen in welche Richtung sie sich dann dreht.
Lang lang her, ich weiß;)
Trotzdem: Ich habe diese Meldung gester plötzlich aus heiterem Himmel, ohne dass ich jemals selber eine Funktion aus 99_Utils.pm aufgerufen habe. Die Meldung hat sich dann mit anderen gesteigert, besonders hohen Anteil hatte schließlich
Cannot fork: Cannot allocate memory
was dann wohl auch zum wiederholten Aufruf meines Watchdogs und dem Neustart des Cubies führte. Sonst wäre mir das nicht aufgefallen, da ich nicht zu Hause war.
Will damit auch nur sagen, dass es offensichtlich auch der Fall sein kann, dass nicht der User selber sondern irgend ein sehr selten genutztes Modul oder eine besondere Konstellation diesen Fall auslösen kann, scheint mir. Klar, bin hier aber nur einer der Dummie-Anwender und sehe das ganze vielleicht auch falsch.
Zitat von: CoolTux am 05 Juli 2017, 13:46:57
Es handelt sich um eine Funktion welche in der Regel nur vom User aufgerufen werden kann.
Wie kommst Du auf diese unsinnige Behauptung?
Unten findest Du ein spontanes Suchergebnis nach "trim(" in ./FHEM