Hauptmenü

Bug in MAXLAN

Begonnen von Markus M., 13 April 2013, 05:23:43

Vorheriges Thema - Nächstes Thema

Markus M.

Nachdem FHEM in letzter Zeit öfter mal nicht mehr wirklich reagiert hat, konnte ich durch ein wenig Testen MAXLAN als den Übeltäter ausmachen.
Die Verbindungsroutine hat einen ziemlich fiesen Konstruktionsfehler, der wahrscheinlich nur noch niemandem aufgefallen ist.

Wenn MAXLAN versucht, sich mit dem Cube zu verbinden, funktioniert alles super sofern die Verbindung zustande kommt.
Passiert das nicht, gibt es zwei unschöne Szenarien:

- Der Cube weist die Verbindung ab:
2013.04.07 18:50:00 3: Opening MAX device 192.168.178.6:62910
2013.04.07 18:50:00 3: Can't connect to 192.168.178.6:62910: Connection refused
2013.04.07 18:50:00 2: MAXLAN_Connect: Could not connect
2013.04.07 18:50:02 3: Opening MAX device 192.168.178.6:62910
2013.04.07 18:50:02 3: Can't connect to 192.168.178.6:62910: Connection refused
2013.04.07 18:50:02 2: MAXLAN_Connect: Could not connect
2013.04.07 18:50:04 3: Opening MAX device 192.168.178.6:62910
2013.04.07 18:50:04 3: Can't connect to 192.168.178.6:62910: Connection refused
2013.04.07 18:50:04 2: MAXLAN_Connect: Could not connect
2013.04.07 18:50:06 3: Opening MAX device 192.168.178.6:62910
2013.04.07 18:50:06 3: Can't connect to 192.168.178.6:62910: Connection refused
2013.04.07 18:50:06 2: MAXLAN_Connect: Could not connect
2013.04.07 18:50:08 3: Opening MAX device 192.168.178.6:62910
2013.04.07 18:50:08 3: Can't connect to 192.168.178.6:62910: Connection refused
2013.04.07 18:50:08 2: MAXLAN_Connect: Could not connect

MAXLAN versucht es jetzt alle 2 Sekunden erneut, was das System lahmlegt.


- Der Cube ist nicht da:
2013.04.12 06:30:47 3: Can't connect to 192.168.100.6:62910: Connection timed out
2013.04.12 06:30:47 2: MAXLAN_Connect: Could not connect
2013.04.12 06:30:49 3: Opening MAX device 192.168.100.6:62910
2013.04.12 06:31:52 3: Can't connect to 192.168.100.6:62910: Connection timed out
2013.04.12 06:31:52 2: MAXLAN_Connect: Could not connect
2013.04.12 06:31:54 3: Opening MAX device 192.168.100.6:62910
2013.04.12 06:32:57 3: Can't connect to 192.168.100.6:62910: Connection timed out
2013.04.12 06:32:57 2: MAXLAN_Connect: Could not connect
2013.04.12 06:32:59 3: Opening MAX device 192.168.100.6:62910
2013.04.12 06:34:02 3: Can't connect to 192.168.100.6:62910: Connection timed out
2013.04.12 06:34:02 2: MAXLAN_Connect: Could not connect
2013.04.12 06:34:04 3: Opening MAX device 192.168.100.6:62910

Der Verbindungsversuch läuft ins Leere.
Bis zum Timeout ist FHEM für eine Minute komplett blockiert.
2 Sekunden nach dem Timeout geht das Spiel von vorne los.


Besonders Szenario 2 ist katastrophal und lässt sich einfach reproduzieren, indem man die Cube IP auf eine nicht vergebene IP setzt.

Lösungsansätze:
- Das Intervall der Verbindungsversuche von 2s auf mehrere Minuten erhöhen (im nächsten Update?)
- Die Zeit zum TCP Timeout verringern (schwierig da nicht Teil von MAXLAN?)
- FHEM/Blocking.pm ?


Bis auf diese Kleinigkeit funktioniert MAXLAN übrigens super.
Daumen hoch!
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Matthias Gehre

Bin im Moment ziemlich beschäftigt. Wenn jemand einen Patch schreibt, kann ich den aber einpflegen.

Markus M.

Im Anhang mit 540s = 9min.
D.h. wenn der Cube weg ist, ist FHEM nur noch alle 10 Minuten für eine Minute blockiert.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Tom_S

habe es mal bei mir geändert, mal sehen, danke

Weis vieleicht noch jemand wie ich die Logfileausgabe für die Verbindung bei "ondemand" verhindern kann.
Mein Logfile sieht eigendlich nur so aus

2013.04.18 21:54:08 3: Opening ml device 192.168.115.90:62910
2013.04.18 21:54:08 3: ml device opened
2013.04.18 21:55:10 3: Opening ml device 192.168.115.90:62910
2013.04.18 21:55:10 3: ml device opened
2013.04.18 21:56:12 3: Opening ml device 192.168.115.90:62910
2013.04.18 21:56:12 3: ml device opened
2013.04.18 21:57:13 3: Opening ml device 192.168.115.90:62910
2013.04.18 21:57:13 3: ml device opened
2013.04.18 21:58:15 3: Opening ml device 192.168.115.90:62910
2013.04.18 21:58:15 3: ml device opened
2013.04.18 21:59:17 3: Opening ml device 192.168.115.90:62910
2013.04.18 21:59:17 3: ml device opened
2013.04.18 22:00:19 3: Opening ml device 192.168.115.90:62910
2013.04.18 22:00:19 3: ml device opened

mfg
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Markus M.

Zitat von: Tom_S schrieb am Do, 18 April 2013 22:08Weis vieleicht noch jemand wie ich die Logfileausgabe für die Verbindung bei "ondemand" verhindern kann.

Eher nicht, da diese Einträge nicht direkt von MAXLAN geschrieben werden.
Die kommen mit Loglevel 3 aus DevIo.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Matthias Gehre

Habs committed, danke.