print() on closed filehandle

Begonnen von jhohn, 01 Februar 2013, 09:00:09

Vorheriges Thema - Nächstes Thema

jhohn

Hallo,
heute Nacht um 00:00:01 hatte ich folgende Meldungen im Log:

print() on closed filehandle GEN9 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN14 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN17 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN34 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN18 at ./FHEM/92_FileLog.pm line 115.


Ich gehe mal davon aus das Fhem in ein Monatliches Log schreiben wollte welches schon rotiert war.
Ist das ein Fehler in FileLog.pm oder ein Problem in meiner Konfig?
FHEM auf Synology Diskstation DS413j (DSM4.3), HM LAN Adapter
Steuerung für Nachtspeicheröfen:
Ladung:   HM-WDS10-TH-O, HM-LC-Sw4-DR, Weather-Modul
Gebläse: HM-CC-TC, HM-LC-SW1-FM, HM-Sec-RHS
FHEM auf FritzBox 7390 für Telefon Funktionen

ChrisW

Ich mach mal mit hatte das selbe:
2013.02.01 00:08:21 3: ml device opened
print() on closed filehandle GEN6 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN6 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN6 at ./FHEM/92_FileLog.pm line 115.
print() on closed filehandle GEN6 at ./FHEM/92_FileLog.pm line 115.
2013.02.01 00:10:02 3: Opening ml device 192.168.2.22:62910
Raspberry PI3 mit allem möglichen.

borsti67

Mal wieder hochkram:

scheint ein Problem in 92_FileLog.pm zu sein, sehe ich auch jeden Monat...
Keine Besserung in Sicht? ;)
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

Dietmar63

Die Ursache für den Fehler ist aus meiner Sicht ganz einfach zu finden.
Der Fehler liegt wie ihr richtig vermutet in 92_FileLog.pm.


(siehe Anhang / see attachement)


$fh(das aktuelle filehandle) wird in Zeile 104 aus einem hash gefüllt, aber zum Monatswechsel wird das file in Zeile 113 FileLog_Switch($log) geschlossen und ein neues file geöffnet. Dann zeigt $fh in Zeile 115 auf ein geschlossenes file und das besagt dann auch die Fehlermeldung.

Man muss also nur die Zuweisung Zeile 104 hinter den Aufruf von FileLog_Switch($log) verschieben und alles ist gut.

@ Rudi:
Wenn du dies liest, kannst du das Problem lösen oder soll ich es machen?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

ihr werdet es wohl selbst machen müssen, Rudi hat wohl nicht mitgelesen
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

stromer-12

Habe ich bei mir jetzt auch festgestellt, in dem mir der erste Messwert im Log fehlt.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Dietmar63

Ja - ist logisch, weil der erste Messwert nach einem Monatswechsel in ein geschlossenes File geschrieben wird.

Einfach die Zuweisung $fh = ... nochmals hinter die Zeile mit dem Funktionaufruf FileLog_Switch($log)  kopieren - dann ist alles ok. Nach einem Update müßt ihr das immer wieder korrigieren, solange der Modulverantwortliche es nicht korrigiert.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

wurde jetzt repariert!!! - nach einem update verfügbar.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm