8083/fhem nicht mehr erreichbar

Begonnen von mfeske, 17 März 2022, 22:18:44

Vorheriges Thema - Nächstes Thema

mfeske

Hallo zusammen,
von einem Moment auf den anderen war fhem per web nicht mehr erreichbar. Es gab am raspi kein update und auch keins für fhem.
Neustart vom raspi hilft auch nicht.
fhem arbeitet aber, rolladen fahren hoch und runter etc.
wenn ich fhem anhalte und neustarte
sudo service fhem stop
Stopping fhem...
pi@raspyfhem ~ $ sudo service fhem start
Starting fhem...
Daemon with PID 8287 started!

erhalte ich eine Meldung
Can't bind socket: Address already in use

Kann es sein das ein anderer Dienst sich an den Ports bedient ?
Wie kann das passieren ?
Gruß
Micha

Logs habe ich auch befragt:
2022.03.17 22:23:31 1: reload: Error:Modul 01_FHEMWEB deactivated:
Attempt to reload TcpServerUtils.pm aborted.
Compilation failed in require at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 51.
BEGIN failed--compilation aborted at ./FHEM/01_FHEMWEB.pm line 7, <$fh> line 51.


und

2022.03.17 22:22:02 3: hmusb: Unknown code A0F6C861062E9DE0000000A90C30B0000::-101:hmusb, help me!
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

SirMarco


postman

#2
Hallo zusammen,
nach einem update von FHEM ist die Webseite nicht mehr erreichbar.
Ale Fehlermelung im log steht:
2022.03.18 11:13:29 1: reload: Error:Modul 98_telnet deactivated:
Attempt to reload TcpServerUtils.pm aborted.
Compilation failed in require at ./FHEM/98_telnet.pm line 10.
BEGIN failed--compilation aborted at ./FHEM/98_telnet.pm line 10.

2022.03.18 11:13:29 0: Attempt to reload TcpServerUtils.pm aborted.
Compilation failed in require at ./FHEM/98_telnet.pm line 10.
BEGIN failed--compilation aborted at ./FHEM/98_telnet.pm line 10.

2022.03.18 11:13:29 1: BlockingCall (BlockingStart): No telnet port found and cannot create one: Cannot load module telnet


Ich habe mal das TCPServerutil.pm alt und neu verglichen. Dabei stellte ich fest, dass anscheinend diverse Subroutinen das Problem verursachen. Versuchsweise habe ich diese mal gelöscht und festgestellt, dass wenn ich die folgenden Routinen lösche, alles wieder funktioniert:
1. TcpServer_MCastAdd...
2. TcpServer_SetLoopbackMode...
3.. TcpServer_MCastRecv...
4. TcpServer_MCastSend...
5. TcpServer_MCastRemove...
Da scheint irgendwo das Problem zu liegen.
Verwenden tue ich übrigens als BS das Wheezy.
Das möchte ich derzeit aber nicht updaten, da meine Installation mittlerweile so umfaangreich ist, dass ich den derzeiteigen Stand wohl nicht mehr zusammenbringe.

Gruß
Uwe


Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

CoolTux

https://forum.fhem.de/index.php/topic,126290.0.html

Ich habe Andre und Rudi einmal gebeten sich Deinen Beitag an zu schauen. Besser wäre allerdings einen eigenen Thread zu eröffnen das dieder hier augenscheinlich mit Deinem Problem nichts zu tun hat.
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

Da ich kein wheezy zur Verfuegung habe: kannst du bitte das komplette Log zeigen?

Wenn ich meine Version von TcpServerUtils mit Absicht verunstalte, dann sind die letzten Zeilen des Logs so wie in deinem Beispiel, aber davor kann man die eigentlichen Probleme sehen.

frank

vor 3 tagen gab es ebenfalls das problem in verbindung mit wheezy.
dort gibt es etwas mehr log:
https://forum.fhem.de/index.php/topic,126789.msg1213586.html#msg1213586
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

mfeske

also ich erreiche die Instanz auf keinem der Ports :-(
netstat -na |grep LISTEN|grep
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN


auch nach einem kill -all besteht das Problem weiterhin

sudo killall -9 perl
pi@raspyfhem ~ $ sudo service fhem status
fhem is not running
pi@raspyfhem ~ $ sudo service fhem start
Starting fhem...
Daemon with PID 7811 started!
Can't bind socket: Address already in use


Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

mfeske

#8
Hallo Frank,
aus dem git repo laden vorher fhem stoppen und dann reinkopieren und neu starten ?
Gruß
Micha

-rw-r--r--  1 fhem dialout   17506 Mär 16 22:13 TcpServerUtils.pm

die wurde wohl vor kurzem geändert

Das hat wohl leider nicht geklappt:


pi@raspyfhem ~ $ sudo mv /opt/fhem/FHEM/TcpServerUtils.pm /opt/fhem/FHEM/TcpServerUtils_off.pm
pi@raspyfhem ~ $ sudo cp /opt/fhem/restoreDir/update/2022-03-16/FHEM/TcpServerUtils.pm /opt/fhem/FHEM/
pi@raspyfhem ~ $ sudo service fhem start
Starting fhem...
Daemon with PID 8098 started!
Can't bind socket: Address already in use


Nach raspi Neustart sieht es etwas besser aus :-)
Beim nächsten Update fliegt mir dann wieder alles um die Ohren ?


netstat -na |grep LISTEN
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8086            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

rudolfkoenig

ZitatBeim nächsten Update fliegt mir dann wieder alles um die Ohren ?
Yepp, es sei denn Du traegst TcpServerUtils in "attr global exclude_from_update" ein.
Ich versuche noch eine Loesung fuer olle Systeme zu finden, bin gespannt, ob ich damit durchkomme, fuer Entwickler sind alte Systeme laestig.

Was mir nicht klar ist: wieso bestehst Du auf ein FHEM update aber nicht auf ein OS update?

frank

ZitatNach raspi Neustart sieht es etwas besser aus
passen rechte/owner/gruppe nach dem tausch noch?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CoolTux

Zitat von: rudolfkoenig am 18 März 2022, 21:24:16
Was mir nicht klar ist: wieso bestehst Du auf ein FHEM update aber nicht auf ein OS update?

Das würde mich auch Interessieren. Ich bin im übrigen so ein Entwickler  :D
Ich würde ja alle User zwingen wenigstens auf Jessie zu gehen.
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

Beta-User

Zitat von: rudolfkoenig am 18 März 2022, 21:24:16
bin gespannt, ob ich damit durchkomme, fuer Entwickler sind alte Systeme laestig.
M.E. geht es gar nicht sooo sehr um "lästig", sondern v.a. darum, dass veraltete Betriebssysteme halt schlicht und ergreifend nicht mehr einen hinreichenden Sicherheitslevel gewährleisten können. Wenn wir User dazu "ermuntern", das so beizubehalten, ist das m.E. einfach der falsche Weg...

Von daher kann ich auch nicht so ganz nachvollziehen, wenn jemand hier nicht klar sagt, dass jemand, der jetzt updated, doch bitte die aktuellste "stable" nehmen sollte, also aktuell "bullseye". Nach meiner möglicherweise lückenhaften Kenntnis ist mehr oder weniger die einzige wirklich kritische Baustelle das "unescaped left brace"-Thema, und das sollte sich in 97,8% der Fälle in 20 Minuten lösen lassen (vorausgesetzt, man kennt die Lösung, die ja einfach zu finden ist).
Wer so eine "Uralt-Murmel" sein Eigen nennt, muss halt (eigentlich: sowieso) in einen neuen Datenträger investieren und mal eine "Software-Inventur" machen, that's all... Aber dann bitte weitermachen mit dem aktuellsten Stand! Nicht "Minimalinvasiv". Der Aufwand ist doch mehr oder weniger gleich...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

grundsätzlich ist wheezy wirklich schon sehr alt und ein upgrade auf dem pi funktioniert ja auch ohne probleme.
allerdings hat dieses problem eigentlich nichts mit einem veralteten os zu tun, finde ich. es hätte ja auch schon damals beim wechsel auf jessie passieren können.

"komfortabler" wäre es, wenn fhem vor einem update die perl version des os checken würde und ggf ein komplettes update verhindert oder nur bestimmte module vom update ausschliesst.
ein entsprechendes popup im webif wird sicherlich viele user zum os-update animieren.
theoretisch müsste das doch mit einem zusätzlichen versions parameter in der "$Id:...." zeile machbar sein.

fhem.pl legt die ältest mögliche version fest und in den modulen kann zusätzlich eine neuere version vorausgesetzt werden.
module ohne versionsangabe übernehmen die mindestversion von fhem.pl.
core module wie TcpServerUtils.pm sollten dann möglichst auch mit der mindestversion funktionieren.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

Zitat"komfortabler" wäre es, wenn fhem vor einem update die perl version des os checken würde und ggf ein komplettes update verhindert oder nur bestimmte module vom update ausschliesst.

Das ist ohne Zweifel wahr fuer den Benutzer, bedeutet aber, dass der Entwickler alle denkbaren Features mit allen Perl-Versionen testen muss.

Strenggenommen muesste jedes Modul die kleinste und groesste gepruefte Version fuer perl und alle verwendeten Module (rekursiv?) angeben. Fuehrt dazu, dass der Gelegenheits-Modulentwickler die gerade verwendeten Versionen angibt, und das Modul schnell unbrauchbar wird. Auch fuer mich ist das keine Option: statt 15 Minuten fuer ein Fetaure muesste ich Stunden mit Testen verbringen.

Man kann auch eine weniger perfekte Variante einfuehren, fraglich ist, ob das unter dem Strich besser ist, als die aktuelle Variante, wo der Benutzer nach dem schiefgelaufenen update restore durchfuehren kann.