Fhem Web-Frontend hängt mit Windows 10 + Firefox

Begonnen von ScStephan, 10 April 2020, 19:13:12

Vorheriges Thema - Nächstes Thema

ScStephan

Hallo zusammen,

ich habe neuerdings das Problem, dass ich mit dem PC (Windows 10, 10.0.18363.720 und Firefox 75) nicht mehr auf das Web-Frontend zugreifen kann. Er fängt an zu laden, und tut das Ewigkeiten lang. Dabei scheint das gesamte Fhem zu hängen. Ein kill -HUP (also ein restart) behebt es.
Mit dem selben PC ging es vor einiger Zeit noch. Das gleiche Phänomen habe ich mit dem Internet Explorer und Edge auf dem selben PC.

Mit meinem Uralt-Laptop mit Vista und Firefox (letzte unterstütze Vista-Version) geht es. Mit Android 10 und Firefox 68.7 (mobile) geht es.

Fhem läuft auf einer Fritzbox (7.12) mit perl v5.24.1 (da gibt es einen separaten Thread).

Wenn ich in Firefox die Netzwerk-Analyse starte, dann zeigt er mir, dass er 4kB von 10 von der Hauptseite geladen hat.
Verbose 5 gibt mir dies:


2020.04.10 18:46:24 4: Connection accepted from WEB_192.168.10.36_52435
2020.04.10 18:46:24 5: GET /fhem HTTP/1.1
Host: fritz.box:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
2020.04.10 18:46:24 4: WEB_192.168.10.36_52435 GET /fhem; BUFLEN:0
2020.04.10 18:46:24 4: WEB: /fhem / RL:3949 / text/html; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2020.04.10 18:46:24 5: GET /fhem/pgm2/jquery-ui.min.js HTTP/1.1
Host: fritz.box:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: http://fritz.box:8083/fhem
2020.04.10 18:46:24 4: WEB_192.168.10.36_52435 GET /fhem/pgm2/jquery-ui.min.js; BUFLEN:0
2020.04.10 18:46:35 1: Including fhem.cfg


Ich gehe davon aus, dass ich wohl der einzige bin, bei dem es auftritt (ich habe nix vergleichbares hier gefunden). Über einen gewissen Fingerzeig wäre ich aber dankbar. Ich hatte sowas vor nem Jahrzehnt wegen einer schlechten MTU und SMTP, könnte das hier das gleiche sein? Sonst habe ich keinerlei Probleme (weder mit dem PC, noch sonst  ;) ).

Frohe Ostern,
Stephan

rudolfkoenig

Es gibt etliche Themen mit diesen Symptomen hier im Forum, bisher war mW ueberall der Virus-Pruefer dran schuld.

ScStephan

#2
Hallo Rudolf,

sorry, ich hatte übersehen, dass es ein Unterforum für fhemweb gibt.
Wirklich schlauer bin ich dadurch aber auch nicht geworden. Zumindest nicht mit den Themen seit Mitte 2018.

Virenscanner ist "nur" der Win Defender drauf.
Sowohl das Ausschalten des "Viren & Bedrohungsschutzes" als auch der "App & Browsersteuerung" hilft leider nicht weiter.
Was ich vergessen hatte - ich update fhem recht selten. Die Version, mit der es zum ersten Mal aufgetreten war, ist Antik (fhem.pl 13593 2017-03-04). Ein update über die Oberfläche (fhem.pl 21573) hat leider keine Verbesserung gebracht.

Viele Grüße,
Stephan

Nachtrag: Ein zweiter (frisch aufgesetzer) Laptop zeigt das gleiche Bild.

ScStephan

Noch 3 Nachträge:
1) Kopiere ich die FHEM-Dateien wie sie sind auf ein aktuelles Ubuntu 18 System und starte sie dort, kann ich von Windows wie gehabt verbinden.
2) Von Ubuntu kann ich mit der selben Firefox-Version (75) wie unter Windows auf die Fritz-Box ohne Probleme verbinden.
3) Die aktuelle Perl-Stable 5.30.2 macht auf der Fritz-Box keinen Unterschied.

Ich gehe also davon aus, dass es irgendwie die Kombination Fritz.box, fhem/perl und Windows 10 ist.

ScStephan

Und noch eine Antwort:
Er hängt bei mir an folgender Stelle, vielleicht hat ja jemand eine Idee:

2020.04.18 12:36:31 4: WEB_192.168.10.36_51538 GET /fhem/pgm2/jquery-ui.min.js; BUFLEN:0
-> FHEMWEB.pm: FW_returnFileAsStream, TcpServer_WriteBlocking($FW_chash, sprintf("%x\r\n",length($buf)) .$buf."\r\n");
-> TcpServerUtils.pm: TcpServer_WriteBlocking, eval { $ret = syswrite($sock, $txt, $len-$off, $off); }; # Wide character
letzteres kommt nicht so schnell wieder (irgendwann gibt es einen Timeout).

für 2020.04.18 12:36:31 4: WEB_192.168.10.36_51535 GET /fhem/pgm2/style.css?v=1587206119; BUFLEN:0
klappt das ganze

amenomade

- Greifst Du direkt auf Fhem oder über irgendein Proxy?
- Was sagt die Console-Log des Browsers?
- Wie sieht die Datei /fhem/pgm2/jquery-ui.min.js aus? Inhalt und Permissions sind OK?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ScStephan

Hi, danke für Deine Antwort.

Proxy: Nein. Aber: Das wäre mein nächster Schritt gewesen. Ich habe deshalb auf dem Ubuntu tinyproxy installiert und diesen verwendet. Wenn ich darüber zugreife, geht es fast. Lediglich das FHEM Logo links oben fehlt und er beschwert sich irgendwann, dass der Server nicht richtig forwarded (wahrscheinlich irgendwie zirkulär). Schalte ich den Proxy danach ab, geht es. Leere ich den Cache, geht es nicht mehr.

Die (Web-)Console sagt praktisch nix. Nur dass die besagte Datei nicht da kommt (sobald ich escape drücke).

Die JQuery ist die: jQuery UI - v1.11.4 - 2015-03-29 (wie sie dabei ist, denke ich)
Inhalt schaut unverdächtig aus. Sie ist halt groß und ich denke, das ist auch das Problem.
Rechte schauen auch unverdächtig aus:
-rwxrwxrwx    1 boxusr10 root        240427 Nov  5  2015 jquery-ui.min.js

Mein Gefühl sagt mir, dass Windows 10 irgendwas innerhalb der letzten Releases geändert hat, was Paketgrößen oder das Handling von TCP-Streams oder so angeht.

amenomade

Zitat von: ScStephan am 20 April 2020, 18:10:09
Die (Web-)Console sagt praktisch nix. Nur dass die besagte Datei nicht da kommt (sobald ich escape drücke).
Du solltest mindestens das http return code sehen.

ZitatRechte schauen auch unverdächtig aus:
-rwxrwxrwx    1 boxusr10 root        240427 Nov  5  2015 jquery-ui.min.js
Läuft dein Fhem wirklich unter diesem User im group root? Bei mir gehören alle Dateien unter /opt/fhem/www dem User fhem, group dialout
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ScStephan

Zitat von: amenomade am 20 April 2020, 20:10:34
Du solltest mindestens das http return code sehen.

Sorry, mein Fehler. Ich hab den Default-Filter genommen und der schließt Requests aus. Wirklich groß ist der Erkenntnisgewinn nicht.

GET http://fritz.box:18083/fhem
[HTTP/1.1 200 OK 677ms]

GET http://fritz.box:18083/fhem/pgm2/style.css?v=1587487957
[HTTP/1.1 200 OK 133ms]

GET http://fritz.box:18083/fhem/pgm2/jquery-ui.min.js



Zitat
Läuft dein Fhem wirklich unter diesem User im group root? Bei mir gehören alle Dateien unter /opt/fhem/www dem User fhem, group dialout

Das ist eine gute Frage. Spontan hätte ich gesagt nein, aber ps gibt mir:
7719 boxusr10 30536 S    /var/InternerSpeicher/freetz/bin/perl fhem.pl fhem.c

Ich hätte wahrscheinlich auch keine andere Wahl, da es auf der samba freigabe liegt.
Bei näherer Betrachtung der passwd Datei haben der Nutzer "fhem" und boxusr10 die selbe ID. Ich hatte das Startskript diesbezüglich nie hinterfragt. Das legt den Nutzer dynamisch an. Könnte auch gut Absicht sein. Da other rwx ist, wäre das Ganze aber wahrscheinlich auch egal.
Wäre das ein Problem, würde es meines Erachtens aber auch mit jedem anderen Client nicht gehen.


amenomade

So lange die Berechtigungen die gleiche sind auf ...?/fhem/ wie auf ...?/fhem/www bis zu ...?/fhem/www/pgm2/jquery-ui.min.js sollte es OK sein.

Ich bin aber kein Spezialist von freetz und kann nicht viel weiter helfen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus