FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Prof. Dr. Peter Henning am 16 März 2017, 13:05:05

Titel: Massenhaft uninitialized value $VALUE ...
Beitrag von: Prof. Dr. Peter Henning am 16 März 2017, 13:05:05
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
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: betateilchen am 16 März 2017, 13:07:40
aber zumindest stacktrace sollte doch etwas mehr output liefern?

Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: rudolfkoenig am 16 März 2017, 13:09:34
Kommen die Meldungen mit dem "PERL WARNING:" Prefix?
Hilft attr global stacktrace?
Greifst du auf VALUE in einen der konfigurierten at/notify/etc Befehlen?
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: Prof. Dr. Peter Henning am 16 März 2017, 13:31:01
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
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: justme1968 am 16 März 2017, 14:18:18
ich checke nachher eine version ein die das problem hoffentlich nicht mehr hat.
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: Prof. Dr. Peter Henning am 16 März 2017, 15:03:14
André, bitte kurze Nachricht hier, wenn das eingecheckt ist.

LG

pah
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: justme1968 am 16 März 2017, 17:22:28
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
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: Prof. Dr. Peter Henning am 17 März 2017, 08:14:32
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
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: justme1968 am 17 März 2017, 08:38:23
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.
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: Prof. Dr. Peter Henning am 17 März 2017, 09:08:39
Guten Morgen,

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

LG

pah
Titel: Antw:Massenhaft uninitialized value $VALUE ...
Beitrag von: justme1968 am 17 März 2017, 10:21:39
ich habe eben noch mal eine version mit verbessertem start verhalten eingecheckt.

gruss
andre