55_GDS.pm 2 Bugs?

Begonnen von ReVoLt112, 12 Juli 2015, 09:52:40

Vorheriges Thema - Nächstes Thema

ReVoLt112

Hallo zusammen,

mein FHEM hat sich heute 2x aufgehängt. Nach etwas Recherche bin ich darauf gekommen das es am GDS Modul liegt. Ich musste mein Passwort beim DWD zurücksetzen lassen und habe nicht darauf geachtet, dass das Kennwort erst nach 1 Stunde funktioniert.

Immer beim "get list stations" kam es zum Absturz.

ich habe dann mal in die Quellen von 55_GDS.pm geschaut und 2x "or die $!"  in Zeile 554 und 1085 gefunden. Ich glaube das ist nicht ganz im Sinne des Erfinders oder?

Schönen Sonntag noch und Grüße aus Neukirchen-Vluyn

EDIT: http://forum.fhem.de/index.php/topic,38899.0.html dieser Beitrag aus dem Forum scheint das gleiche Problem zu beschreiben.

Hollo

Ohne in den Code gesehen zu haben...
"or die" wird gerne genommen, um einen Timeout bzw. fehlende Verbindung abzufangen; also ganz im Sinne des Erfinders.

"get list stations" läuft bei mir problemlos durch.

Was steht denn in Deinem Log?
Warum musstest Du Deinen Account zurücksetzen, wenn es an FHEM liegen soll?

Kann es sein, dass der gesperrt wurde, weil Du zu oft abgefragt hast !?
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

jensb

Habe mir die beiden or die mal angesehen.

Das erste ist in der sub getListCapStations, die direkt von Get aufgerufen wird. Weder FHEM noch das Modul verwenden zum Aufruf ein eval. Wenn also z.B. der FTP-Transfer fehlschlägt, weil die Anmeldung nicht klappt, sieht der User statt einer Fehlermeldung einen Absturz und die Fehlermeldung ggf. auf der Shell.

Der zweite ist in der sub createIndexFile, die vom Modul selbst scheinbar nie aufgerufen wird. Wer sie manuell aufruft sollte eval verwenden.

Da ich sowieso an einem Patch für das GDS-Modul arbeite (siehe Thread http://forum.fhem.de/index.php?topic=38106.new;topicseen#new), werde ich versuchen, auch für das "or die" in Zeile 554 eine geeignete Lösung zu finden.

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

Hallo,

habe das GDS-Modul überarbeitet. Damit sollte der Grund für den Absturz durch das 1. die beim Lesen weg sein. Das 2. die wird beim Schreiben von Dateien verwendet und sollte bleiben, denn wenn das Schreiben nicht mehr funktioniert, ist die Platte voll oder defekt und dann ist Abstürzen in Ordnung.

Für 10 Sekunden "aufhängen" kann sich das ganze immer noch, wenn keine Verbindung zustande kommt. Jetzt wird aber zumindest ein Fehlertext mit Level 4 geloggt, der vielleicht weiter hilft.

Wer es testen will, sollte dazu die 2. Version des GDS-Moduls vom 21.07.2015 aus dem Thread http://forum.fhem.de/index.php/topic,38106 verwenden.

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb