FHEM Forum

FHEM => Automatisierung => Thema gestartet von: yersinia am 02 September 2023, 10:00:45

Titel: [gelöst][98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: yersinia am 02 September 2023, 10:00:45
Hi herrmannj,

nach dem Release von Freitag und dem Update von 98_JsonMod.pm (https://forum.fhem.de/index.php?topic=134797.0) verweigert FHEM den Start, letzter Log-Eintrag:
Can't call method "next" on an undefined value at ./FHEM/98_JsonMod.pm line 565, <$fh> line 5283.Kannst du dir das mal ansehen? Einspielen der vorherigen Version fixt dies (natürlich nicht unerwartet).
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: herrmannj am 02 September 2023, 11:24:02
Weitere Meldungen im Log?
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: betateilchen am 02 September 2023, 13:32:25
Zitat von: yersinia am 02 September 2023, 10:00:45nach dem Release von Freitag und dem Update von 98_JsonMod.pm verweigert FHEM den Start

Blöde Frage: hast Du nur 98_JsonMod.pm aktualisiert oder hast Du auch die zugehörigen neuen Libraries im  update mit installiert?


@Jörg: bei mir keine Auffälligkeiten bezüglich cron, sonst hätte ich mich schon vorab gemeldet :)

offtopic: Meine Hoffnung war, dass auch mein vorgeschlagener patch (https://forum.fhem.de/index.php?topic=134554.0) zu JsonMod im zu erwartenden Update mit berücksichtigt wird  8)
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: yersinia am 02 September 2023, 16:11:34
Zitat von: herrmannj am 02 September 2023, 11:24:02Weitere Meldungen im Log?
Nein, danach endet der Log und beginnt mit dem FHEM-Start; die mind 10 Meldungen davor beziehen sich nicht auf ein JsonMod-Device.

Zitat von: betateilchen am 02 September 2023, 13:32:25Blöde Frage: hast Du nur 98_JsonMod.pm aktualisiert oder hast Du auch die zugehörigen neuen Libraries im  update mit installiert?
Nee, hab das Update über fhem update geholt - und die neue lib war dabei:
2023.09.02 09:26:36 1: Downloading https://fhem.de/fhemupdate/controls_fhem.txt
2023.09.02 09:26:36 1: fhem
2023.09.02 09:26:36 1: RMDIR: ./restoreDir/update/2023-06-30
2023.09.02 09:26:36 1: UPD ./CHANGED
[...]
2023.09.02 09:26:37 1: UPD FHEM/98_JsonMod.pm
[...]
2023.09.02 09:26:37 1: UPD lib/FHEM/Scheduler/Cron.pm
Es hat es auch aufs Filesystem geschafft:
pi@fhem-pi: /opt/fhem/lib/FHEM/Scheduler $ ls -lah
insgesamt 44K
-rw-r--r--  1 fhem dialout  35K  2. Sep 09:26 Cron.pm

Ich nutze auch keine (nicht im SVN vorhandenen) Modifikationen von JsonMod.

Kann es sein, dass es ggf mit deaktivierten JsonMod Devices zu tun haben kann? Der Bezug zu "next" fand ich merkwürdig.
Ich habe einige Devices, die zwar ein Intervall definiert haben aber
attr disable 1haben - ich aktualisiere dann via reread. Im Internals NEXT steht dort auch NEVER.
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: betateilchen am 02 September 2023, 20:22:39
Zitat von: yersinia am 02 September 2023, 16:11:34Ich habe einige Devices, die zwar ein Intervall definiert haben aber
attr disable 1haben - ich aktualisiere dann via reread.

Solche devices habe ich auch, aber trotzdem startet mein FHEM problemlos.

Hast Du mal fhem manuell mit der debug option gestartet?
Vielleicht erkennt man da eine Problemursache.



Produktiv (RPi 4):
This is perl 5, version 36, subversion 0 (v5.36.0) built for arm-linux-gnueabihf-thread-multi-64int
(with 52 registered patches, see perl -V for more detail)

Entwicklung & Test (AWS Lightsail):
This is perl 5, version 36, subversion 0 (v5.36.0) built for x86_64-linux-gnu-thread-multi
(with 52 registered patches, see perl -V for more detail)
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: herrmannj am 02 September 2023, 21:28:47
Hallo yersinia,

starte mal so (terminal): perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t

Danach werde ich vmtl wissen wollen welches perl + version das ist.

Danke, vg
Joerg
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: Jamo am 03 September 2023, 11:55:21
Bei mir das gleiche, fhem startet nach dem heutigen update nicht: Can't call method "next" on an undefined value at ./FHEM/98_JsonMod.pm line 565, <$fh> line 9263
perl --version

This is perl 5, version 32, subversion 1 (v5.32.1) built for x86_64-linux-gnu-thread-multi
(with 47 registered patches, see perl -V for more detail)
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: herrmannj am 03 September 2023, 12:10:17
starte mal so (terminal): perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t

Und dann den Output, bitte
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: Jamo am 03 September 2023, 12:20:50
Mach ich heute abend!
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: herrmannj am 03 September 2023, 14:13:41
Mein Verdacht wäre das ihr ein älteres List::Utils verwendet, wo nicht alles implementiert ist. Wenn ich das simuliere bekomme ich aber klare logmeldungen und fhem fängt das ab. Von daher ist das Verhalten mysteriös. So oder so, ich brauche Daten...

2023.09.03 14:08:59 1: reload: Error:Modul 98_JsonMod deactivated:
 "foo" is not exported by the List::Util module
Can't continue after import errors at lib/FHEM/Scheduler/Cron.pm line 10.
BEGIN failed--compilation aborted at lib/FHEM/Scheduler/Cron.pm line 10, <$fh> line 26.
Compilation failed in require at ./FHEM/98_JsonMod.pm line 30, <$fh> line 26.
BEGIN failed--compilation aborted at ./FHEM/98_JsonMod.pm line 30, <$fh> line 26.

Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: herrmannj am 03 September 2023, 14:38:16
ich glaube™ ich verstehe was passiert ...
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: yersinia am 03 September 2023, 16:07:54
Zitat von: herrmannj am 02 September 2023, 21:28:47starte mal so (terminal): perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
pi@fhem-pi:/opt/fhem $ perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
Need a .t file as argument for -t
Anscheinend ist Ordner t kein Teil des regulären Updates (https://svn.fhem.de/trac/browser/trunk/fhem/controls_fhem.txt).

Aber diesen kann man anlegen...
pi@fhem-pi:/opt/fhem $ perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
2023.09.03 15:55:52 1: Including t/FHEM/90_Cron/10_Cronlib.cfg
2023.09.03 15:55:52 0: Featurelevel: 6.2
2023.09.03 15:55:52 0: Server started with 1 defined entities (fhem.pl:27895/2023-08-24 perl:5.032001 os:linux user:pi pid:3173955)
ok 1 - FHEM::Scheduler::Cron loaded
ok 2 - must throw an error if no cron text given (got 'no cron expression')
ok 3 - must throw an error if cron expression exceeds 255 chars (got 'cron expression exceeds limit')
ok 4 - accept '* * * * *' (\# of successful passes: 1)
ok 5 - handle '1 * * * *' (\# of successful passes: 24)
ok 6 - handle '1-5 * * * *' (\# of successful passes: 120)
ok 7 - handle '1-5/1 * * * *' (\# of successful passes: 120)
ok 8 - handle '1-5/2 * * * *' (\# of successful passes: 72)
ok 9 - accept '0 * * * *' (\# of successful passes: 0)
ok 10 - accept '00 * * * *' (\# of successful passes: 0)
ok 11 - accept '1 * * * *' (\# of successful passes: 0)
ok 12 - accept '01 * * * *' (\# of successful passes: 0)
ok 13 - accept '1-59 * * * *' (\# of successful passes: 59)
ok 14 - accept '01-059 * * * *' (\# of successful passes: 0)
ok 15 - accept '1-59/1 * * * *' (\# of successful passes: 59)
ok 16 - accept '1-59/30 * * * *' (\# of successful passes: 2)
ok 17 - accept '01-059/01 * * * *' (\# of successful passes: 0)
ok 18 - accept '1-59/59 * * * *' (\# of successful passes: 1)
ok 19 - accept '01-059/059 * * * *' (\# of successful passes: 0)
ok 20 - accept '10~20 * * * *' (\# of successful passes: 0)
ok 21 - accept '10~20,30~40 * * * *' (\# of successful passes: 0)
ok 22 - reject 'a * * * *' (got 'syntax error in minute item: a')
ok 23 - reject '*,a * * * *' (got 'syntax error in minute item: a')
ok 24 - reject '1,a * * * *' (got 'syntax error in minute item: a')
ok 25 - reject '*-5 * * * *' (got 'syntax error in minute item: *-5')
ok 26 - reject '5-1 * * * *' (got 'syntax error in minute item: 5-1')
ok 27 - reject '60 * * * *' (got 'syntax error in minute item: 60')
ok 28 - reject '0-60 * * * *' (got 'syntax error in minute item: 0-60')
ok 29 - reject '0-59/60 * * * *' (got 'syntax error in minute item: 0-59/60')
ok 30 - reject '20~10 * * * *' (got 'syntax error in minute item: 20~10')
ok 31 - accept '0 0 * * *' (\# of successful passes: 2)
ok 32 - accept '0 00 * * *' (\# of successful passes: 0)
ok 33 - accept '0 1 * * *' (\# of successful passes: 0)
ok 34 - accept '0 01 * * *' (\# of successful passes: 0)
ok 35 - accept '0 1-23 * * *' (\# of successful passes: 23)
ok 36 - accept '0 01-023 * * *' (\# of successful passes: 23)
ok 37 - accept '0 1-23/1 * * *' (\# of successful passes: 23)
ok 38 - accept '0 01-023/01 * * *' (\# of successful passes: 23)
ok 39 - accept '0 1-23/12 * * *' (\# of successful passes: 2)
ok 40 - accept '0 1-23/23 * * *' (\# of successful passes: 2)
ok 41 - accept '0 1~10 * * *' (\# of successful passes: 0)
ok 42 - accept '0 1~10,11~20 * * *' (\# of successful passes: 0)
ok 43 - handle '0 0 * * *' (\# of successful passes: 30)
ok 44 - handle '0 0 * * 1' (\# of successful passes: 3)
ok 45 - handle '0 0 * * 1-5' (\# of successful passes: 5)
ok 46 - handle '0 0 * * 1-5/1' (\# of successful passes: 5)
ok 47 - handle '0 0 * * 1-5/2' (\# of successful passes: 3)
ok 48 - handle '0 0 * * 1-5,6' (\# of successful passes: 6)
ok 49 - handle '0 0 8 * 1-5,6' (\# of successful passes: 7)
ok 50 - handle '0 0 8 * Mon-Fri,Sat' (\# of successful passes: 7)
ok 51 - handle '0 0 8 * mon-fri,sat' (\# of successful passes: 7)
ok 52 - handle '0 0 8 * MON-FRI,SAT' (\# of successful passes: 7)
ok 53 - handle '0 0 2-8 * &1-5,6' (\# of successful passes: 7)
ok 54 - handle '0 0 2-8 * &Mon-Fri,Sat' (\# of successful passes: 7)
ok 55 - handle '0 0 * 2 0\#F' (\# of successful passes: 6)
ok 56 - handle '0 0 * 2 Sun\#F' (\# of successful passes: 6)
ok 57 - handle '0 0 * * 4\#L' (\# of successful passes: 6)
ok 58 - handle '0 0 * * Thu\#L' (\# of successful passes: 6)
ok 59 - handle '0 0 * 2 6\#5' (\# of successful passes: 6)
ok 60 - handle '0 0 * 2 6\#-5' (\# of successful passes: 6)
ok 61 - reject '0 0 * 2 8' (got 'syntax error in wday item: 8')
ok 62 - reject '0 0 * 2 0/Mon' (got 'syntax error in wday item: 0/Mon')
ok 63 - reject '0 0 * 2 0\#0' (got 'syntax error in wday item: 0\#0')
ok 64 - reject '0 0 * 2 0\#6' (got 'syntax error in wday item: 0\#6')
ok 65 - reject '0 0 * 2 0\#-6' (got 'syntax error in wday item: 0\#-6')
ok 66 - reject '0 0 * 2 0\#A' (got 'syntax error in wday item: 0\#A')
ok 67 - reject '0 0 * 2 0\#Mon' (got 'syntax error in wday item: 0\#Mon')
ok 68 - reject '0 0 * 2 FOO' (got 'syntax error in wday item: FOO')
ok 69 - reject '0 0 * 2 Sunday' (got 'syntax error in wday item: Sunday')
ok 70 - Timeseries '0 12 3,4,5 2 0,2,3,4' (\# of successful passes: 4)
ok 71 - Feb-29 (leap year)'0 12 29 2 *' (\# of successful passes: 3)
ok 72 - Feb-29 & Sunday '0 12 29 2 &Sun' (\# of successful passes: 1)
ok 73 - Fri 13 '0 12 13 * &Fri' (\# of successful passes: 3)
ok 74 - daylight eu '0 2 * 3,10 Sun\#L' (\# of successful passes: 3)
1..74

Perl Version ist v5.32.1 bzw 5.32.1-4+deb11u2

Zitat von: betateilchen am 02 September 2023, 20:22:39Hast Du mal fhem manuell mit der debug option gestartet?
Wie kann ich die debug option mitgeben? Irgendwie finde ich dazu nichts passendes in der commandref, wiki oder hier (Suche nach debug ist auch fuzzy).

Zitat von: herrmannj am 03 September 2023, 14:13:41Mein Verdacht wäre das ihr ein älteres List::Utils verwendet, wo nicht alles implementiert ist. Wenn ich das simuliere bekomme ich aber klare logmeldungen und fhem fängt das ab. Von daher ist das Verhalten mysteriös. So oder so, ich brauche Daten...
Kann sein, ich nehm das, was mir debian/raspbian hier unter bullseye bietet.
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: herrmannj am 03 September 2023, 16:17:39
Ich habe den Fehler gefunden, tritt tatsächlich mit disabled auf wenn noch andere Umstände dazukommen. Update kommt heute Abend. Dankeschön
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: betateilchen am 03 September 2023, 22:25:38
Zitat von: yersinia am 03 September 2023, 16:07:54
Zitat von: betateilchen am 02 September 2023, 20:22:39Hast Du mal fhem manuell mit der debug option gestartet?
Wie kann ich die debug option mitgeben? Irgendwie finde ich dazu nichts passendes in der commandref, wiki oder hier

perl fhem.pl -d fhem.cfg
Es gibt irgendwo eine Anleitung, in der das drinsteht, aber ich hab jetzt keine Lust, die zu suchen.
Titel: Aw: [98_JsonMod.pm] Update verhindert FHEM Start (rev 27916)
Beitrag von: Jamo am 04 September 2023, 09:16:54
Dankeschön, mit dem update von heute morgen läuft wieder alles, der Fehler ist verschwunden!