Massenhaft uninitialized value $VALUE ...

Begonnen von Prof. Dr. Peter Henning, 16 März 2017, 13:05:05

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Seitdem ich 5.8 drin habe, wird beim Experimentieren mit Beta-Versionen von Modulen tausendfach eine Perl-Warnung

uninitialized value $VALUE in substr at (eval 37509) line 1 produziert, ab und zu auch mit "index" oder "sprintf" statt "substr"

Ich habe keinen Schimmer, wo das herkommt, denn die fraglichen Module enthalten gar kein "eval". Irgendeine erläuternde Fehlermeldung gibt es nicht, auch ein verbose=5 bringt keine Erleuchtung.

LG

pah

betateilchen

aber zumindest stacktrace sollte doch etwas mehr output liefern?

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

rudolfkoenig

Kommen die Meldungen mit dem "PERL WARNING:" Prefix?
Hilft attr global stacktrace?
Greifst du auf VALUE in einen der konfigurierten at/notify/etc Befehlen?

Prof. Dr. Peter Henning

PERL WARNING: Use of uninitialized value $VALUE in substr at (eval 41038) line 1.
2017.03.16 13:29:15 1: stacktrace:
2017.03.16 13:29:15 1:     main::__ANON__                      called by (eval 41038) (1)
2017.03.16 13:29:15 1:     (eval)                              called by /opt/fhem/FHEM/33_readingsProxy.pm (128)
2017.03.16 13:29:15 1:     main::readingsProxy_update          called by /opt/fhem/FHEM/33_readingsProxy.pm (84)
2017.03.16 13:29:15 1:     main::readingsProxy_updateDevices   called by /opt/fhem/FHEM/33_readingsProxy.pm (185)
2017.03.16 13:29:15 1:     main::readingsProxy_Notify          called by fhem.pl (3312)
2017.03.16 13:29:15 1:     main::CallFn                        called by fhem.pl (3233)
2017.03.16 13:29:15 1:     main::DoTrigger                     called by fhem.pl (2004)
2017.03.16 13:29:15 1:     main::CommandDelete                 called by /opt/fhem/FHEM/10_FS20.pm (381)
2017.03.16 13:29:15 1:     main::FS20_Parse                    called by fhem.pl (3508)
2017.03.16 13:29:15 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_CUL.pm (969)
2017.03.16 13:29:15 1:     main::CUL_Parse                     called by /opt/fhem/FHEM/00_CUL.pm (825)
2017.03.16 13:29:15 1:     main::CUL_Read                      called by fhem.pl (3312)
2017.03.16 13:29:15 1:     main::CallFn                        called by fhem.pl (675)


readingsproxy ist einer der Übeltäter.

LG

pah

justme1968

ich checke nachher eine version ein die das problem hoffentlich nicht mehr hat.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Prof. Dr. Peter Henning

André, bitte kurze Nachricht hier, wenn das eingecheckt ist.

LG

pah

justme1968

hab eben eine neue version eingecheckt.

da ich zwar weiss was die meldungen verursacht hat, aber nicht sicher bin was sich in 5.8 genau geändert hat (oder ob es auch vorher schon so war) hoffe ich das es keine weiteren nebenwirkungen zum das bisherigen verhalten gibt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Prof. Dr. Peter Henning

Nein, nicht ganz. Die Anzahl ist zwar deutlich gefallen - aber auch mit dem neuen readngsProxy habe ich heute morgen

Zitat2017.03.17 07:37:35 1: PERL WARNING: Use of uninitialized value $VALUE in sprintf at (eval 154) line 1.
2017.03.17 07:37:35 1: stacktrace:
2017.03.17 07:37:35 1:     main::__ANON__                      called by (eval 154) (1)
2017.03.17 07:37:35 1:     (eval)                              called by /opt/fhem/FHEM/33_readingsProxy.pm (130)
2017.03.17 07:37:35 1:     main::readingsProxy_update          called by /opt/fhem/FHEM/33_readingsProxy.pm (84)
2017.03.17 07:37:35 1:     main::readingsProxy_updateDevices   called by /opt/fhem/FHEM/33_readingsProxy.pm (194)
2017.03.17 07:37:35 1:     main::readingsProxy_Notify          called by fhem.pl (3312)
2017.03.17 07:37:35 1:     main::CallFn                        called by fhem.pl (3233)
2017.03.17 07:37:35 1:     main::DoTrigger                     called by fhem.pl (1852)
2017.03.17 07:37:35 1:     main::CommandDefine                 called by fhem.pl (1108)
2017.03.17 07:37:35 1:     main::AnalyzeCommand                called by fhem.pl (977)
2017.03.17 07:37:35 1:     main::AnalyzeCommandChain           called by configDB.pm (706)
2017.03.17 07:37:35 1:     main::_cfgDB_Execute                called by configDB.pm (403)
2017.03.17 07:37:35 1:     main::cfgDB_ReadAll                 called by fhem.pl (518)

Ein weiterer Übeltäter ist 98_SVG.pm:

Zitat2017.03.17 07:47:17 1: PERL WARNING: Use of uninitialized value $file in concatenation (.) or string at /opt/fhem/FHEM/98_SVG.pm line 1117.
2017.03.17 07:47:17 1: stacktrace:
2017.03.17 07:47:17 1:     main::__ANON__                      called by /opt/fhem/FHEM/98_SVG.pm (1117)
2017.03.17 07:47:17 1:     main::SVG_doShowLog                 called by /opt/fhem/FHEM/98_SVG.pm (1020)
2017.03.17 07:47:17 1:     main::SVG_showLog                   called by /opt/fhem/FHEM/01_FHEMWEB.pm (871)
2017.03.17 07:47:17 1:     main::FW_answerCall                 called by /opt/fhem/FHEM/01_FHEMWEB.pm (535)
2017.03.17 07:47:17 1:     main::FW_Read                       called by fhem.pl (3312)
2017.03.17 07:47:17 1:     main::CallFn                        called by fhem.pl (675)
2017.03.17 07:47:17 1: PERL WARNING: Use of uninitialized value $file in string eq at /opt/fhem/FHEM/98_SVG.pm line 814.
2017.03.17 07:47:17 1: stacktrace:
2017.03.17 07:47:17 1:     main::__ANON__                      called by /opt/fhem/FHEM/98_SVG.pm (814)
2017.03.17 07:47:17 1:     main::SVG_substcfg                  called by /opt/fhem/FHEM/98_SVG.pm (1133)
2017.03.17 07:47:17 1:     main::SVG_doShowLog                 called by /opt/fhem/FHEM/98_SVG.pm (1020)
2017.03.17 07:47:17 1:     main::SVG_showLog                   called by /opt/fhem/FHEM/01_FHEMWEB.pm (871)
2017.03.17 07:47:17 1:     main::FW_answerCall                 called by /opt/fhem/FHEM/01_FHEMWEB.pm (535)
2017.03.17 07:47:17 1:     main::FW_Read                       called by fhem.pl (3312)
2017.03.17 07:47:17 1:     main::CallFn                        called by fhem.pl (675)
2017.03.17 07:47:17 1: PERL WARNING: Use of uninitialized value $fileesc in substitution (s///) at /opt/fhem/FHEM/98_SVG.pm line 819.
2017.03.17 07:47:17 1: stacktrace:
2017.03.17 07:47:17 1:     main::__ANON__                      called by /opt/fhem/FHEM/98_SVG.pm (819)
2017.03.17 07:47:17 1:     main::SVG_substcfg                  called by /opt/fhem/FHEM/98_SVG.pm (1133)
2017.03.17 07:47:17 1:     main::SVG_doShowLog                 called by /opt/fhem/FHEM/98_SVG.pm (1020)
2017.03.17 07:47:17 1:     main::SVG_showLog                   called by /opt/fhem/FHEM/01_FHEMWEB.pm (871)
2017.03.17 07:47:17 1:     main::FW_answerCall                 called by /opt/fhem/FHEM/01_FHEMWEB.pm (535)
2017.03.17 07:47:17 1:     main::FW_Read                       called by fhem.pl (3312)
2017.03.17 07:47:17 1:     main::CallFn                        called by fhem.pl (675)
2017.03.17 07:47:17 1: PERL WARNING: Use of uninitialized value $fileesc in concatenation (.) or string at /opt/fhem/FHEM/98_SVG.pm line 820.
2017.03.17 07:47:17 1: stacktrace:
2017.03.17 07:47:17 1:     main::__ANON__                      called by /opt/fhem/FHEM/98_SVG.pm (820)
2017.03.17 07:47:17 1:     main::SVG_substcfg                  called by /opt/fhem/FHEM/98_SVG.pm (1133)
2017.03.17 07:47:17 1:     main::SVG_doShowLog                 called by /opt/fhem/FHEM/98_SVG.pm (1020)
2017.03.17 07:47:17 1:     main::SVG_showLog                   called by /opt/fhem/FHEM/01_FHEMWEB.pm (871)
2017.03.17 07:47:17 1:     main::FW_answerCall                 called by /opt/fhem/FHEM/01_FHEMWEB.pm (535)
2017.03.17 07:47:17 1:     main::FW_Read                       called by fhem.pl (3312)
2017.03.17 07:47:17 1:     main::CallFn                        called by fhem.pl (675)

Und noch ein Übeltäter

Zitat2017.03.17 07:37:29 1: PERL WARNING: Use of uninitialized value in substitution iterator at fhem.pl line 4073.
2017.03.17 07:37:29 1: stacktrace:
2017.03.17 07:37:29 1:     main::__ANON__                      called by fhem.pl (4073)
2017.03.17 07:37:29 1:     main::evalStateFormat               called by fhem.pl (2682)
2017.03.17 07:37:29 1:     main::CommandAttr                   called by fhem.pl (1108)
2017.03.17 07:37:29 1:     main::AnalyzeCommand                called by fhem.pl (977)
2017.03.17 07:37:29 1:     main::AnalyzeCommandChain           called by configDB.pm (706)
2017.03.17 07:37:29 1:     main::_cfgDB_Execute                called by configDB.pm (403)
2017.03.17 07:37:29 1:     main::cfgDB_ReadAll                 called by fhem.pl (518)

LG

pah

justme1968

kannst du bitte mal zeile 123 aktivieren und schauen ob die meldungen dann weg sind?

legst du das device auf das sich der readingsProxy bezieht zur laufzeit neu an?

falls ja: direkt nach dem define sind die readings noch nicht gesetzt und valueFn wird mit undefined als $VALUE aufgerufen. das muss man dann in der valueFn berücksichtigen.

wenn nein: kommt die meldung nur beim fhem start? dann reicht es vermutlich die zeile 123 noch mit einer prufung auf !$init_done zu verbinden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Prof. Dr. Peter Henning

Guten Morgen,

aktivieren ist derzeit schlecht, bin nicht daheim. Nein, Device ist bereit svorher definiert, Meldungen nur beim Start.

LG

pah

justme1968

ich habe eben noch mal eine version mit verbessertem start verhalten eingecheckt.

gruss
andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968