Timeouts bei NonblockingGet Funktion

Begonnen von CoolTux, 06 Dezember 2016, 15:11:55

Vorheriges Thema - Nächstes Thema

CoolTux

Ich habe da einen Testserver gefunden.
Hier ein Link für chunked encoding

https://jigsaw.w3.org/HTTP/ChunkedScript
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Korrektur: HttpUtils hat auch bisher TransferEncoding: chunked beherrscht, aber nur dann, falls der Server mit "Connection: close" konfiguriert ist. Damit ist die angegebene Seite kein echter Test, weil sie mit "Connection: close" konfiguriert ist, und damit HttpUtils prima funktioniert.

Ich habe die Chunked-Erkennung/Dekodierung in HttpUtils trotzdem umgebaut (d.h. von ParseAnswer ins DataComplete geschoben), hoffentlich ohne Nebeneffekte, damit sollte auch "Connection: keep-alive" tun. Ich habe danach mit update getestet, das lief durch. Ein TabletUI-update-Test nicht (mit https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt), andererseits behaupte ich, dass daran nicht ich schuld bin, das bricht auch mit der alten Version der HttpUtils.pm ab. Weiss jemand da genaueres?

CoolTux

Habe gerade gesehen das es bereits im svn ist. Ich werde es nachher gleich mal testen. Schon mal vielen Dank für Deine Mühe.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

justme1968

verträgt sich keep-alive wirklich mt DataComplete?

chunked und keep-alive würde man ja verwenden wenn über eine lange zeit immer mal
wieder daten kommen.

sollte man dann nicht für jedes häppchen den callback aufrufen und nicht erst nach einer potentiell langen zeit mit allen daten?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Das mag sein, aber so wie es bisher war, war eher schlechter als jetzt.

CoolTux

Hallo Rudi,

Ich habe die aktuelle svn HttpUtils Version eingespielt.
Leider bekomme ich immer noch Timeouts. Anbei was mein Log dazu sagt

2016.12.09 20:46:34 4: NUKIBridge (NukiBridge) - Send HTTP POST with URL http://10.6.34.46:8080/list?token=XXXXXX
2016.12.09 20:47:04 3: NUKIBridge (NukiBridge) - Param Alive:
2016.12.09 20:47:04 3: NUKIBridge (NukiBridge) - Param Code:
2016.12.09 20:47:04 3: NUKIBridge (NukiBridge) - Error: read from http://10.6.34.46:8080 timed out
2016.12.09 20:47:04 3: NUKIBridge (NukiBridge) - PATH: /list?token=XXXXX
2016.12.09 20:47:04 3: NUKIBridge (NukiBridge) - httpheader: HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
2016.12.09 20:47:04 4: NUKIBridge (NukiBridge) - error while requesting: read from http://10.6.34.46:8080 timed out


Ich kann mir daraus aber keinen Reim bilden.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Kannst du bitte nach Zeile 413 der letzten Version von HttpUtils.pm (nach sysread) Folgendes einbauen
Log 1, "GOT $buf";
und die Ausgabe hier posten?

CoolTux

Interessant. Daten kommen wohl an.


2016.12.10 09:53:22 4: NUKIBridge (NukiBridge) - Send HTTP POST with URL http://10.6.34.46:8080/list?token=FX0dQQ
2016.12.10 09:53:22 1: GOT HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked

1
[

2016.12.10 09:53:22 1: GOT A6
{"nukiId": 123456, "name": "CobraTuer", "lastKnownState": {"state": 1, "stateName": "locked", "batteryCritical": false, "timestamp": "2016-12-08T14:14:52+00:00"}}]
0


2016.12.10 09:53:52 3: NUKIBridge (NukiBridge) - Param Alive:
2016.12.10 09:53:52 3: NUKIBridge (NukiBridge) - Param Code:
2016.12.10 09:53:52 3: NUKIBridge (NukiBridge) - Error: read from http://10.6.34.46:8080 timed out
2016.12.10 09:53:52 3: NUKIBridge (NukiBridge) - PATH: /list?token=FX0dQQ
2016.12.10 09:53:52 3: NUKIBridge (NukiBridge) - httpheader: HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
2016.12.10 09:53:52 4: NUKIBridge (NukiBridge) - error while requesting: read from http://10.6.34.46:8080 timed out
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

justme1968

kann es sein das hier genau das im anderen thread angesprochene problem auftritt?

d.h. die gegenstelle hält die verbindung offen weil sie nach und nach noch mehr daten senden will und fhem wartet auf ein ende das nicht kommt. statt dessen wird nach dem timeout zu gemacht.

falls das so ist müsste das vorgeschlagenen aufrufen des callback für jeden chunk helfen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Da die Aenderung wohl mehrere Module zum Absturz bringt, habe ich sie zurueckgedreht, und fuer update aktualisiert.
Wenn jemand was einfach Nachstellbares hat, bitte melden, will die Aenderung eigentlich behalten.

@CoolTux:
Sorry, habe 0 vergessen, deswegen braucht man einen richtigen Test-Server. Habe eine angepasste Version hier angehaengt.

@justme1968: welchen Thread meinst du?

CoolTux

Sorry Rudi das ich da nicht so einfach mit dienen kann. Habe hier nur die Nuki Bridge.
Ich danke Dir jedenfalls sehr für Deine Mühen. Werde es nachher gleich testen. Muss erstmal meinen Junior ins Bett bringen   :D


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

justme1968

@rudi: sorry. es war natürlich der gleiche thread. nur etwas weiter oben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

@Rudi
Ich bereite am We einen VPN für Dich vor mit Zugang zur Bridge. Dann kannst die Aufruf nachstellen und testen.
Hoffe das hilft Dir.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Hallo Rudi,

Es geht nun.

2016.12.10 13:40:39 4: NUKIBridge (NukiBridge) - Send HTTP POST with URL http://10.6.34.46:8080/list?token=ABCDE
2016.12.10 13:40:39 1: C: 1
2016.12.10 13:40:39 1: C: 166
2016.12.10 13:40:39 1: C: 0
2016.12.10 13:40:39 3: NUKIBridge (NukiBridge) - Param Alive:
2016.12.10 13:40:39 3: NUKIBridge (NukiBridge) - Param Code: 200
2016.12.10 13:40:39 3: NUKIBridge (NukiBridge) - Error:
2016.12.10 13:40:39 3: NUKIBridge (NukiBridge) - PATH: /list?token=ABCD
2016.12.10 13:40:39 3: NUKIBridge (NukiBridge) - httpheader: HTTP/1.1 200 OK
Connection: Close
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
2016.12.10 13:40:39 5: NUKIDevice (NukiBridge) - create new device 'NUKIDevice1234567' for address '1234567'
2016.12.10 13:40:39 3: NUKIDevice1234567: I/O device is NukiBridge
2016.12.10 13:40:39 3: NUKIDevice (NUKIDevice1234567) - defined with Code: NukiBridge-1234567
2016.12.10 13:40:39 2: NUKIDevice (NukiBridge) - autocreated 1 devices


Wie können wir nun die Fehler bei den anderen rausfinden. Oder könnte das auch wegen der Fehlenden 0 gewesen sein?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Das ist auch geloest (siehe https://forum.fhem.de/index.php/topic,62260.msg536901.html#msg536901) und die neue Version ist eingecheckt, kommt morgen per update.