fhem / SD_Keeloq

FHEM - Module
https://fhem.de/
3 stars 2 forks source link

Version von 2020-12-02 bringt FHEM zum Absturz #21

Closed Reinhard-M closed 3 years ago

Reinhard-M commented 3 years ago

Hatte das Folgende bereits im FHEM Forum gepostet (SD_Keeloq: Version von...), glaube aber dort mit meinem Anliegen an der falschen Stelle zu sein. Deshalb hier die Wiederholung. Mit der aktuellen Version tritt reproduzierbar ein FHEM Absturz auf wenn ich versuch das Attribut "ChannelNames" anzulegen. Im fhem.log steht dann folgendes:

Line 26470: 2021.01.02 17:56:00.441 1: PERL WARNING: Deep recursion on subroutine "main::CallFn" at fhem.pl line 3049.
Line 26471: 2021.01.02 17:56:00.441 1: PERL WARNING: Deep recursion on subroutine "main::CommandAttr" at ./FHEM/14_SD_Keeloq.pm line 239.
Line 26472: 2021.01.02 17:56:00.442 1: PERL WARNING: Deep recursion on subroutine "SD_Keeloq::Attr" at fhem.pl line 3818.

Mit der Version 2019-09-02 tritt dieser Fehler nicht auf. Hier noch die SD_Keeloq Definition:

defmod myJaro_Whz SD_Keeloq 123400
attr myJaro_Whz ChannelNames Wohnzimmer,Küche,Schlafz_L,Schlafz_R,Sabine_L,Sabine_R,Dachstudio,Jalousie,Markise_Süd,Markise_West,Fallarm_Markise
attr myJaro_Whz Channels 11
attr myJaro_Whz IODev mySduino
attr myJaro_Whz KeeLoq_NLF 0xXXXXXXXX
attr myJaro_Whz LearnVersion new
attr myJaro_Whz MasterLSB 0xYYYYYYYY
attr myJaro_Whz MasterMSB 0xZZZZZZZZ
attr myJaro_Whz Repeats 6
attr myJaro_Whz Serial_send 123400
attr myJaro_Whz ShowIcons 1
attr myJaro_Whz ShowLearn 1
attr myJaro_Whz UI Mehrzeilig
attr myJaro_Whz devStateIcon send.down:fts_shutter_down send.up:fts_shutter_up send.stop:rc_STOP send.shade:fts_shutter_shadding_run Defined:rc_OK receive.down.*:fts_shutter_down receive.up.*:fts_shutter_up receive.stop.*:rc_STOP
attr myJaro_Whz model JaroLift
attr myJaro_Whz room SD_Keeloq

Wie angedeutet, beim Wechsel zurück auf die alte Version funktioniert das Anlegen des Attributes einwandfrei. Wenn das Attribut vergeben ist gibt es ebenfalls keine Fehlermeldung.

HomeAutoUser commented 3 years ago

Hallo @Reinhard-M , ich werde es mal die Tage simulieren. Noch habe ich gerade kein PC zur Hand.

Kannst du bitte noch einmal genau die Schritte zum Absturz gliedern? (Oder stehen diese im Forum)?

Liebe Grüße Happy 2021

Reinhard-M commented 3 years ago

Hallo Marco,

der Fehler tritt auf sobald du bei einem SD_Keeloq Device versuchst das „ChannelNames“ Attribut zu setzen. Es reicht also ein

attr ChannelNames Wohnzimmer

Damit stürzt FHEM reproduzierbar ab.

Liebe Grüße und gutes neues Jahr 😊

Reinhard

Von: HomeAutoUser notifications@github.com Gesendet: Sonntag, 3. Januar 2021 22:06 An: fhem/SD_Keeloq SD_Keeloq@noreply.github.com Cc: Reinhard-M Reinhard-Mueller@web.de; Mention mention@noreply.github.com Betreff: Re: [fhem/SD_Keeloq] Version von 2020-12-02 bringt FHEM zum Absturz (#21)

Hallo @Reinhard-M https://github.com/Reinhard-M , ich werde es mal die Tage simulieren. Noch habe ich gerade kein PC zur Hand.

Kannst du bitte noch einmal genau die Schritte zum Absturz gliedern? (Oder stehen diese im Forum)?

Liebe Grüße Happy 2021

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fhem/SD_Keeloq/issues/21#issuecomment-753676102 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO4SEK5Y4GHKRFZZCFYXS43SYDL43ANCNFSM4VR2A2JA . https://github.com/notifications/beacon/AO4SEK7WZZOZ4SOUIMXYDSDSYDL43A5CNFSM4VR2A2JKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFTWC6RQ.gif

HomeAutoUser commented 3 years ago

Hallo @Reinhard-M,

ich werde vermutlich heute oder morgen danach schauen. Ich habe schon einen leisen Verdacht.

Könntest du bitte mir noch ein List liefern von deinem Device wo dies auftrat?

Mit freundlichen Grüßen Marco

Reinhard-M commented 3 years ago

Hallo Marco,

wie gesagt, einfach ein neues Device anlegen:

define MyJaro SD_Keeloq 123400

Internals:

CFGFN
DEF 123400 FUUID 5ff450cd-f33f-dca3-1458-1d2e50b15de61be9 IODev http://raspi2.fritz.box:8083/fhem?detail=mySduino2 mySduino2 NAME http://raspi2.fritz.box:8083/fhem?detail=MyJaro MyJaro NR 196 STATE Defined TYPE SD_Keeloq READINGS:

Attributes:

IODev http://raspi2.fritz.box:8083/fhem?detail=mySduino2 mySduino2 model JaroLift room SD_Keeloq

Dann mit

attr MyJaro ChannelNames Whz

versuchen das Attribut “ChannelNames” zu setzen.

Geht garantiert in die Hose. Zuverlässig wird damit eine CPU komplett ausgelastet 😊

Gruß Reinhard

Von: HomeAutoUser notifications@github.com Gesendet: Dienstag, 5. Januar 2021 11:28 An: fhem/SD_Keeloq SD_Keeloq@noreply.github.com Cc: Reinhard-M Reinhard-Mueller@web.de; Mention mention@noreply.github.com Betreff: Re: [fhem/SD_Keeloq] Version von 2020-12-02 bringt FHEM zum Absturz (#21)

Hallo @Reinhard-M https://github.com/Reinhard-M ,

ich werde vermutlich heute oder morgen danach schauen. Ich habe schon einen leisen Verdacht.

Könntest du bitte mir noch ein List liefern von deinem Device wo dies auftrat?

Mit freundlichen Grüßen Marco

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fhem/SD_Keeloq/issues/21#issuecomment-754549408 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO4SEK7NJJC7ZABFQPXPVXDSYLSTZANCNFSM4VR2A2JA . https://github.com/notifications/beacon/AO4SEKY44KPU3SDOU2HW3VLSYLSTZA5CNFSM4VR2A2JKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFT4YFIA.gif

HomeAutoUser commented 3 years ago

Hallo @Reinhard-M, ich habe soeben den Test gemacht mit der aktuellen Version von https://raw.githubusercontent.com/fhem/SD_Keeloq/pre-release/controls_SD_Keeloq.txt

Nach einem define MyJaro SD_Keeloq 123400 und attr MyJaro ChannelNames Whz Auszug Logfile 2021.01.08 09:07:18.994 3: SD_Keeloq: set attr ChannelNames to Whz erfolgte kein Absturz.

Internals:
   CFGFN      
   DEF        123400
   FUUID      5ff81297-f33f-f3b5-21b6-a1f3155d8ea3e5de
   IODev      sduino_Test_STM32_SB
   NAME       MyJaro
   NR         364
   STATE      Defined
   TYPE       SD_Keeloq
Attributes:
   ChannelNames Whz
   IODev      sduino_Test_STM32_SB
   model      JaroLift
   room       SD_Keeloq

Ich würde dich bitten mal ein update force https://raw.githubusercontent.com/fhem/SD_Keeloq/pre-release/controls_SD_Keeloq.txt durchzuführen und danach FHEM neu zu starten. Danach test wiederholen.

Sollte es bei dir ebenso nicht funktionieren, so sind andere Parameter dafür verantwortlich. Da können wir nur systematisch mal alle Punkte prüfen um auf den Grund zu kommen.

MfG

Reinhard-M commented 3 years ago

Hallo Marco, hast du eingecheckt? Mit "pre-release" gibt es nur "404: File not found". Mit "pre_release" bekomme ich das alte SD_Keeloq File:

New entries in the CHANGED file: 2020-12-02 - Automaitc updated controls and CHANGED 2020-12-02 - Update 14_SD_Keeloq.pm Calling /usr/bin/perl ./contrib/commandref_join.pl -noWarnings, this may take a while

Damit stürzt FHEM natürlich weiterhin ab. Auf Git habe ich keinen Branch mit aktuellen Daten gefunden. Kannst du bitte nochmals deine Angaben prüfen?

Gruß Reinhard

HomeAutoUser commented 3 years ago

Hallo Reinhard,

das sollte eigendlich der letzten Version entsprechen. update force https://raw.githubusercontent.com/fhem/SD_Keeloq/pre_release/controls_SD_Keeloq.txt

Du kannst auch alternative mal vorab update force https://raw.githubusercontent.com/fhem/SD_Keeloq/pre_release_pc/controls_SD_Keeloq.txt testen. Das entspricht dem Branch pre_release_pc wo ich demnächst die PERLcritic Überarbeitung einbringen würde.

Versuche mal bitte vor dem Update das globale Attribut

stacktrace 1

zu setzen in FHEM.

Somit sehen wir im Logfile beim Absturz vielleicht noch ein wenig mehr.

Reinhard-M commented 3 years ago

Hallo Marco, die "pre_release" entspricht der derzeitigen "master" Version. Zumindest wenn ich sie via "update force" installiere. Habe die Dateien mit einem compare verglichen. pre_release und pre_release_pc verhalten sich ientisch. Im Log-File steht dann folgendes:

2021.01.08 11:55:09.826 1: PERL WARNING: Deep recursion on subroutine "main::CallFn" at fhem.pl line 3049. 2021.01.08 11:55:09.826 1: stacktrace: 2021.01.08 11:55:09.826 1: main::ANON called by fhem.pl (3049) 2021.01.08 11:55:09.826 1: main::CallFn called by fhem.pl (3049) 2021.01.08 11:55:09.827 1: main::CommandAttr called by ./FHEM/14_SD_Keeloq.pm (239) 2021.01.08 11:55:09.827 1: SD_Keeloq::Attr called by fhem.pl (3818) 2021.01.08 11:55:09.827 1: main::CallFn called by fhem.pl (3049) 2021.01.08 11:55:09.827 1: main::CommandAttr called by ./FHEM/14_SD_Keeloq.pm (239) 2021.01.08 11:55:09.827 1: SD_Keeloq::Attr called by fhem.pl (3818) 2021.01.08 11:55:09.827 1: main::CallFn called by fhem.pl (3049) 2021.01.08 11:55:09.827 1: main::CommandAttr called by ./FHEM/14_SD_Keeloq.pm (239)

Mit der "alten" Version von 2019-09-02 tritt der Fehler nicht auf. Log-File Eintrag:

2021.01.08 12:05:28.351 3: SD_Keeloq: set attr ChannelNames to Whz

Das alles natürlich mit verbose=5. Kann ich irgendetwas anderes noch testen um dem Fehler näher zu kommen?

HomeAutoUser commented 3 years ago

Ich werde versuchen mal auf einem anderen System die Version via deiner Defmod Vorgabe von Dir zu testen.

Ich finde noch keinen Ansatz wieso es auf dem Debian Pc klappte und bei dir nicht. Welches OS nutzt du genau?

Reinhard-M commented 3 years ago

Mein Raspi läuft mit folgender Version: Linux raspi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux Darauf läuft diese Perl Version: This is perl 5, version 28, subversion 1 (v5.28.1) built for arm-linux-gnueabihf-thread-multi-64int (with 61 registered patches, see perl -V for more detail) Kann ich noch weitere Informationen liefern?

Gruß Reinhard

HomeAutoUser notifications@github.com schrieb am Sa., 9. Jan. 2021, 18:49:

Ich werde versuchen mal auf einem anderen System die Version via deiner Defmod Vorgabe von Dir zu testen.

Ich finde noch keinen Ansatz wieso es auf dem Debian Pc klappte und bei dir nicht. Welches OS nutzt du genau?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fhem/SD_Keeloq/issues/21#issuecomment-757341999, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO4SEKZDNM43G7DDMQ7LNODSZCJKJANCNFSM4VR2A2JA .

HomeAutoUser commented 3 years ago

@Reinhard-M schonmal danke für den Hinweis. Mir ist es nun gelungen dies zu rekonstruieren.

2021.01.13 21:39:06 3: SD_Keeloq: set attr room to SD_Keeloq
2021.01.13 21:39:06 3: SD_Keeloq: set attr model to JaroLift
2021.01.13 21:39:13 1: PERL WARNING: Deep recursion on subroutine "main::CallFn" at fhem.pl line 3049.
2021.01.13 21:39:13 1: stacktrace:
2021.01.13 21:39:13 1:     main::__ANON__                      called by fhem.pl (3049)
2021.01.13 21:39:13 1:     main::CallFn                        called by fhem.pl (3049)
2021.01.13 21:39:13 1:     main::CommandAttr                   called by ./FHEM/14_SD_Keeloq.pm (239)
2021.01.13 21:39:13 1:     SD_Keeloq::Attr                     called by fhem.pl (3818)
2021.01.13 21:39:13 1:     main::CallFn                        called by fhem.pl (3049)
2021.01.13 21:39:13 1:     main::CommandAttr                   called by ./FHEM/14_SD_Keeloq.pm (239)

Ich bin dran und gebe Bescheid.

HomeAutoUser commented 3 years ago

@Reinhard-M, ich würde dich mal bitten update force https://raw.githubusercontent.com/fhem/SD_Keeloq/pre-release/controls_SD_Keeloq.txt durchzuführen und dann das Ganze zu testen.

Reinhard-M commented 3 years ago

Hallo Marco, mit der neuen Version funktioniert es wieder einwandfrei. Allerdings konnte ich das File nicht mit der Update Funktion installieren. Da kommt dann immer ein "nothing to do" und nichts passiert. Ich habe es dann direkt aus Git heruntergeladen und ins FHEM Verzeichnis kopiert.

HomeAutoUser commented 3 years ago

Hallo Reinhard, schön wenn es erstmal funktioniert.

Das mit dem Update hatte ich auch erstmal bis ich dann das Modul von Hand löschte und via Update force geladen hatte. Ich werde dort vielleicht nochmal schauen wieso. Ein Grund könnte durch Zufall die gleiche Dateigröße sein.

Reinhard-M commented 3 years ago

Gleiche Dateigröße kann ich ausschließen, die 20-01-13 hat 83251 und die 20-01-08 hat 83296 Byte. Ich hatte auch eine wesentlich ältere Version als Basis verwendet (mit 77883 Byte) - war das gleiche Verhalten. An dieser Stelle brauchst du nicht mehr zu suchen :-)

HomeAutoUser commented 3 years ago

Ich habe die Anpassung in den Master Branch übernommen um die fehlerhafte Version zu ersetzen.

@Reinhard-M noch einmal DANKE für den Hinweis. Da können wir ja zugleich noch im FHEM Forum den Beitrag auf gelöst umbenennen.

Reinhard-M commented 3 years ago

Kein Thema, ist doch selbstverständlich :-) Habe den Master über "update all" ohne Probleme oder löschen der alten Datei updaten können, das Problem ist also ebenfalls behoben.