PERL WARNING: Possible precedence problem ...

Begonnen von M_I_B, 21 Januar 2018, 11:27:30

Vorheriges Thema - Nächstes Thema

M_I_B

Moin Kinnaz,

PERL WARNING: Possible precedence problem on bitwise & operator at (eval 1807156) line 1.

Tja.... Wo soll ich anfangen zu suchen?!? Auf was deutet solch eine Fehlermeldung hin? Damit ist mein ganzes Log voll, etwa im 20 Sekundenm Takt (nicht konstant)

rudolfkoenig


M_I_B

#2
... stimmt, das ergibt mehr Infos, mit denen ich aber leider auch nix anfangen kann ...

Ach, warte mal... set_311_vt scheint der Übeltäter zu sein?! Auf welche Art von Fehler zielt denn das ab? Irgendwas mit einer UND- Verknüpfung, aber ich seh da nix im Moment, was falsch sein könnte ...

2018.01.21 11:46:35.421 1: PERL WARNING: Possible precedence problem on bitwise & operator at (eval 1813337) line 1.
2018.01.21 11:46:35.421 1: eval: set_311_vt: warning in condition c05
2018.01.21 11:46:35.421 1: stacktrace:
2018.01.21 11:46:35.421 1:     main::__ANON__                      called by (eval 1813337) (1)
2018.01.21 11:46:35.421 1:     (eval)                              called by ./FHEM/98_DOIF.pm (1874)
2018.01.21 11:46:35.421 1:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (2159)
2018.01.21 11:46:35.421 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (2296)
2018.01.21 11:46:35.422 1:     main::DOIF_Notify                   called by fhem.pl (3489)
2018.01.21 11:46:35.422 1:     main::CallFn                        called by fhem.pl (3409)
2018.01.21 11:46:35.422 1:     main::DoTrigger                     called by fhem.pl (3767)
2018.01.21 11:46:35.422 1:     main::Dispatch                      called by ./FHEM/00_HMLAN.pm (779)
2018.01.21 11:46:35.422 1:     main::HMLAN_Parse                   called by ./FHEM/00_HMLAN.pm (604)
2018.01.21 11:46:35.422 1:     main::HMLAN_Read                    called by fhem.pl (3489)
2018.01.21 11:46:35.422 1:     main::CallFn                        called by fhem.pl (687)
2018.01.21 11:47:03.331 1: PERL WARNING: Possible precedence problem on bitwise & operator at (eval 1813436) line 1.
2018.01.21 11:47:03.331 1: eval: set_311_vt: warning in condition c05
2018.01.21 11:47:03.331 1: stacktrace:
2018.01.21 11:47:03.331 1:     main::__ANON__                      called by (eval 1813436) (1)
2018.01.21 11:47:03.331 1:     (eval)                              called by ./FHEM/98_DOIF.pm (1874)
2018.01.21 11:47:03.331 1:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (2159)
2018.01.21 11:47:03.331 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (2296)
2018.01.21 11:47:03.331 1:     main::DOIF_Notify                   called by fhem.pl (3489)
2018.01.21 11:47:03.331 1:     main::CallFn                        called by fhem.pl (3409)
2018.01.21 11:47:03.332 1:     main::DoTrigger                     called by fhem.pl (3767)
2018.01.21 11:47:03.332 1:     main::Dispatch                      called by ./FHEM/00_HMLAN.pm (779)
2018.01.21 11:47:03.332 1:     main::HMLAN_Parse                   called by ./FHEM/00_HMLAN.pm (604)
2018.01.21 11:47:03.332 1:     main::HMLAN_Read                    called by fhem.pl (3489)
2018.01.21 11:47:03.332 1:     main::CallFn                        called by fhem.pl (687)

betateilchen

naja, das Problem kommt aus einem DOIF in dem Du irgendwas mit dem set_311_vt machen willst
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Lat Stacktrace hat das was mit DOIF zu tun, und damit gehoert das in dem DOIF Forumsbereich

M_I_B

PRUST ... Ok, ich sollte unausgeschlafen die Finger von FHEM lassen  ::)

Hab's gefunden... AND sollte in einer DOIF auch AND heißen und nicht &&... Jetzt frag mich nur noch einer, wie das da hin gekommen ist; ich habe keine Ahnung. Der DOIF- Block ist ein Copy & Past und im Quellblock ist das korrekt...

@Rudolf:
Das Stacktrace macht nur Sinn bei solchen PERL- relevanten Fehlern, oder interpretiere ich das falsch? Macht es was aus, wenn ich das eingeschaltet lasse oder sollte man dsa abschalten, wenn nicht benötigt?

M_I_B

... Stacktrace ist gemein  :(

Soll mir was sagen? Wollte es gerade abschalten und dann taucht das im Log auf:

2018.01.21 12:03:10.526 1: PERL WARNING: Use of uninitialized value $eH in multiplication (*) at ./FHEM/10_CUL_HM.pm line 4589.
2018.01.21 12:03:10.527 1: stacktrace:
2018.01.21 12:03:10.527 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (4589)
2018.01.21 12:03:10.527 1:     main::CUL_HM_Set                    called by fhem.pl (3484)
2018.01.21 12:03:10.527 1:     main::CallFn                        called by fhem.pl (1752)
2018.01.21 12:03:10.527 1:     main::DoSet                         called by fhem.pl (1785)
2018.01.21 12:03:10.527 1:     main::CommandSet                    called by fhem.pl (1169)
2018.01.21 12:03:10.527 1:     main::AnalyzeCommand                called by fhem.pl (1022)
2018.01.21 12:03:10.527 1:     main::AnalyzeCommandChain           called by ./FHEM/98_DOIF.pm (1530)
2018.01.21 12:03:10.527 1:     main::ParseCommandsDoIf             called by ./FHEM/98_DOIF.pm (1972)
2018.01.21 12:03:10.527 1:     main::DOIF_cmd                      called by ./FHEM/98_DOIF.pm (2171)
2018.01.21 12:03:10.527 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (2296)
2018.01.21 12:03:10.528 1:     main::DOIF_Notify                   called by fhem.pl (3489)
2018.01.21 12:03:10.528 1:     main::CallFn                        called by fhem.pl (3409)
2018.01.21 12:03:10.528 1:     main::DoTrigger                     called by fhem.pl (4383)
2018.01.21 12:03:10.528 1:     main::readingsEndUpdate             called by fhem.pl (4565)
2018.01.21 12:03:10.528 1:     main::readingsSingleUpdate          called by ./FHEM/98_dummy.pm (63)
2018.01.21 12:03:10.528 1:     main::dummy_Set                     called by fhem.pl (3484)
2018.01.21 12:03:10.528 1:     main::CallFn                        called by fhem.pl (1752)
2018.01.21 12:03:10.528 1:     main::DoSet                         called by fhem.pl (1785)
2018.01.21 12:03:10.528 1:     main::CommandSet                    called by fhem.pl (1169)
2018.01.21 12:03:10.528 1:     main::AnalyzeCommand                called by fhem.pl (1022)
2018.01.21 12:03:10.528 1:     main::AnalyzeCommandChain           called by ./FHEM/91_notify.pm (104)
2018.01.21 12:03:10.529 1:     main::notify_Exec                   called by fhem.pl (3489)
2018.01.21 12:03:10.529 1:     main::CallFn                        called by fhem.pl (3409)
2018.01.21 12:03:10.529 1:     main::DoTrigger                     called by fhem.pl (4383)
2018.01.21 12:03:10.529 1:     main::readingsEndUpdate             called by fhem.pl (4565)
2018.01.21 12:03:10.529 1:     main::readingsSingleUpdate          called by ./FHEM/10_MQTT_DEVICE.pm (228)
2018.01.21 12:03:10.529 1:     MQTT::DEVICE::onmessage             called by ./FHEM/00_MQTT.pm (448)
2018.01.21 12:03:10.529 1:     MQTT::__ANON__                      called by FHEM/GPUtils.pm (48)
2018.01.21 12:03:10.529 1:     GPUtils::GP_ForallClients           called by ./FHEM/00_MQTT.pm (458)
2018.01.21 12:03:10.529 1:     MQTT::Read                          called by fhem.pl (3489)
2018.01.21 12:03:10.529 1:     main::CallFn                        called by fhem.pl (687)
2018.01.21 12:03:10.529 1: PERL WARNING: Use of uninitialized value $eM in multiplication (*) at ./FHEM/10_CUL_HM.pm line 4589.
2018.01.21 12:03:10.529 1: stacktrace:
2018.01.21 12:03:10.529 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (4589)
2018.01.21 12:03:10.529 1:     main::CUL_HM_Set                    called by fhem.pl (3484)
2018.01.21 12:03:10.530 1:     main::CallFn                        called by fhem.pl (1752)
2018.01.21 12:03:10.530 1:     main::DoSet                         called by fhem.pl (1785)
2018.01.21 12:03:10.530 1:     main::CommandSet                    called by fhem.pl (1169)
2018.01.21 12:03:10.530 1:     main::AnalyzeCommand                called by fhem.pl (1022)
2018.01.21 12:03:10.530 1:     main::AnalyzeCommandChain           called by ./FHEM/98_DOIF.pm (1530)
2018.01.21 12:03:10.530 1:     main::ParseCommandsDoIf             called by ./FHEM/98_DOIF.pm (1972)
2018.01.21 12:03:10.530 1:     main::DOIF_cmd                      called by ./FHEM/98_DOIF.pm (2171)
2018.01.21 12:03:10.530 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (2296)
2018.01.21 12:03:10.530 1:     main::DOIF_Notify                   called by fhem.pl (3489)
2018.01.21 12:03:10.530 1:     main::CallFn                        called by fhem.pl (3409)
2018.01.21 12:03:10.530 1:     main::DoTrigger                     called by fhem.pl (4383)
2018.01.21 12:03:10.530 1:     main::readingsEndUpdate             called by fhem.pl (4565)
2018.01.21 12:03:10.530 1:     main::readingsSingleUpdate          called by ./FHEM/98_dummy.pm (63)
2018.01.21 12:03:10.530 1:     main::dummy_Set                     called by fhem.pl (3484)
2018.01.21 12:03:10.530 1:     main::CallFn                        called by fhem.pl (1752)
2018.01.21 12:03:10.530 1:     main::DoSet                         called by fhem.pl (1785)
2018.01.21 12:03:10.530 1:     main::CommandSet                    called by fhem.pl (1169)
2018.01.21 12:03:10.531 1:     main::AnalyzeCommand                called by fhem.pl (1022)
2018.01.21 12:03:10.531 1:     main::AnalyzeCommandChain           called by ./FHEM/91_notify.pm (104)
2018.01.21 12:03:10.531 1:     main::notify_Exec                   called by fhem.pl (3489)
2018.01.21 12:03:10.531 1:     main::CallFn                        called by fhem.pl (3409)
2018.01.21 12:03:10.531 1:     main::DoTrigger                     called by fhem.pl (4383)
2018.01.21 12:03:10.531 1:     main::readingsEndUpdate             called by fhem.pl (4565)
2018.01.21 12:03:10.531 1:     main::readingsSingleUpdate          called by ./FHEM/10_MQTT_DEVICE.pm (228)
2018.01.21 12:03:10.531 1:     MQTT::DEVICE::onmessage             called by ./FHEM/00_MQTT.pm (448)
2018.01.21 12:03:10.531 1:     MQTT::__ANON__                      called by FHEM/GPUtils.pm (48)
2018.01.21 12:03:10.531 1:     GPUtils::GP_ForallClients           called by ./FHEM/00_MQTT.pm (458)
2018.01.21 12:03:10.531 1:     MQTT::Read                          called by fhem.pl (3489)
2018.01.21 12:03:10.531 1:     main::CallFn                        called by fhem.pl (687)

rudolfkoenig

Stacktrace stoert in einem fehlerfreien System nicht.  Ohne stacktrace kommt eine Warnung mit dem identischen Text nur einmal. Bei dir aendert sich die eval#, d.h. Text ist nicht identisch. Wenn die Warnung eimal die Sekunde kommt, dann kann die Festplatte schnell voll sein.

Wg. CUL_HM_Set bitte im Homematic Forum fragen.

M_I_B

... alles klar ...
Speicherplatz ist genug da, also lasse ich das erst mal drin. Mal sehen, was sonst noch so an Überraschungen auftauchen :o

Den neuen Fehler poste ich mal in HM. Ich habe nämlich keinen Plan, wo der wohl herkommen mag ...

Danke Dir; schönen Restsonntag noch ...

betateilchen

ich behaupte einfach mal, der kommt aus der gleichen Stelle in Deinem DOIF, an der auch der erste Fehler produziert wurde. Denn der Fehler kommt von einem set Befehl, der vom DOIF ausgelöst wird.

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

M_I_B

... nööö ... Dachte ich zuerst auch. Daher ist der ganze Block deaktiviert; immer noch da ...

Ich weiß leider nicht, wie man solche Dinger interpretieren muss. An erster Stelle wird ja CUL_HM aufgerufen und erst später DOIF, dann Dummy, Notify und zum Schluss MQTT. Daher meine Vermutung, das es irgend ein Block sein muss, der per MQTT Daten mit irgend was anderem austauscht. Das kann die Heizung sein, diverse WeMOS oder das NAS... Habe momentan nicht den totalen Überblick, was alles per MQTT quasselt.

Ich denke, ich werde einfach mal nach und nach alle Blöcke deaktivieren, die irgendwie MQTT nutzen. Irgend wann muss der Fehler ja weg sein; dann hadda verschissen ;)

betateilchen

Zitat von: M_I_B am 21 Januar 2018, 17:57:11
Ich weiß leider nicht, wie man solche Dinger interpretieren muss. An erster Stelle wird ja CUL_HM aufgerufen und erst später DOIF, dann Dummy, Notify und zum Schluss MQTT.

Falsch. Du musst die Liste von unten nach oben lesen. Deshalb ist ein von Homematic aufgerufenes "set" (CUL_HM_Set) die Ursache für die perl warning.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

M_I_B

#12
... AHA! Sach das doch mal wer ::) Woher soll ich denn wissen, das die Nummer so rum zu lesen ist  :o

Also, nur zur Sicherheit:
Wenn ich von unten nach oben lese, ist __ANON__ aufgerufen durch CUL_HM der letzte Befehl vor dem Fehler... oder ? .... so wirklich geblickt habe ich das noch nicht, wie Ihr Cracks mit solchen Dingen Fehlern auf die Spur kommt  :(

betateilchen

das __ANON__ kannst Du erstmal ignorieren.

Von unten nach oben gelesen:


  • MQTT liefert einen event
  • MQTT_DEVICE reagiert darauf und aktualisiert ein reading
  • die notify-loop beginnt
  • als erstes reagiert ein notify, dieses beschreibt ein reading in einem dummy und löst deshalb den nächsten event aus
  • auf diesen event reagiert ein DOIF, das einen "set" Befehl beinhaltet
  • dieser set Befehl wird an das zuständige Hardwaremodul CUL_HM weitergegeben (CUL_HM_Set), kann dort aber nicht ausgeführt werden

Vermutlich willst Du irgendwo in dem DOIF ein "on-till" ausführen und übergibst dabei einen ungültigen Wert für die Zeitangabe.

Und Deine Modulversion von 10_CUL_HM.pm ist nicht auf dem aktuellen Stand. Aber das nur nebenbei.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

M_I_B

Super! Und wieder was gelernt. Danke! Dann mache ich mich die Tage mal auf die Suche... Funktionieren tut es ja komischer Weise alles wie es soll...

ZitatUnd Deine Modulversion von 10_CUL_HM.pm ist nicht auf dem aktuellen Stand. Aber das nur nebenbei.
Woran erkennst Du das? Das letzte Update ist vielleicht umzu 2 Wochen her etwa...