Zu viele offene Verbindungen

Begonnen von Roam, 31 August 2020, 00:51:31

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Ich will ja nicht bestreiten, dass ein Problem gibt, ich wundere mich nur, wieso nach "meiner" Zaehlweise (list TYPE=FHEMWEB FD) weniger Eintraege gibt, als nach deiner Zaehlweise (was auch immer genau "unter FHEMWEB Devices schaue" bedeutet).

Roam

"unter FHEMWEB Devices schaue" bedeutet in FHEM unter Everything nach allen FHEMWEB Devices zu schauen welche den Status Connected haben.

Oder verstehe ich das einfach nur falsch und die sind eigentlich gar nicht mehr connected, sondern wurden einfach nur nicht gelöscht?


rudolfkoenig

ZitatOder verstehe ich das einfach nur falsch und die sind eigentlich gar nicht mehr connected, sondern wurden einfach nur nicht gelöscht?
Das wuesste ich auch gerne. Im Normalfall wird die Verbindung geschlossen, und der FHEM Eintrag, der diese Verbindung representiert, geloescht. Was genau in deinem Fall schiefgeht, habe ich nocht nicht verstanden.

Moeglichkeit 1: FHEM macht einen Fehler: das OS schliesst zwar die Verbindung, FHEM kriegt es aber nicht mit => die socket Liste in /proc/$$/fd (aka OS Liste) ist deutlich kuerzer als die Liste der FHEM Eintraege (aka FHEM Liste). Da dies hier die erste Fehlermeldung dieser Art ist, gehe ich davon aus, dass FHEM normalerweise das richtig macht, aber einen Sonderfall nicht beachtet. Wir muessten rausfinden, was das Sonderbare an dem Sonderfall ist.

Moeglichkeit 2: das OS kriegt das Schliessen der Browserverbindung nicht mit, die OS Liste ist mindestens so lang, wie die FHEM Liste. Hier muss der Fix im OS/docker/etc stattfinden, in FHEM kann man nur einen Workaround, wie den o.g. Snippet einbauen.

D.h. fuer den naechsten Schritt brauche ich im Problemfall den Vergleich der OS Liste mit der FHEM Liste. Letzteres am besten mit "deiner" und "meiner" Methode.

Roam

Hier die Ergebnisse: Vom Windows Client aus:

<code>
netstat | findstr 8083
  TCP    192.168.178.254:50977  192.168.178.150:8083        HERGESTELLT
</code>

Auf dem Server :


netstat | grep 8083
tcp        0      0 localhost:8083          localhost:44206         TIME_WAIT
tcp        0      0 192.168.178.150:8083    192.168.178.254:50881   ESTABLISHED
tcp        0      0 localhost:8083          localhost:33036         ESTABLISHED
tcp        0      0 localhost:33036         localhost:8083          ESTABLISHED
tcp        0      0 localhost:8083          localhost:43660         TIME_WAIT


Im Docker Container:


netstat | grep 8083
tcp        0      0 192.168.178.150:8083    192.168.178.254:51385   ESTABLISHED
tcp        0      0 localhost:8083          localhost:48368         TIME_WAIT
tcp        0      0 localhost:8083          localhost:33036         ESTABLISHED
tcp        0      0 localhost:8083          localhost:48312         TIME_WAIT
tcp        0      0 localhost:33036         localhost:8083          ESTABLISHED
tcp        0      0 localhost:8083          localhost:48238         TIME_WAIT


Hier noch das Ergebnis aus FHEM heraus:


{ `ls -l /proc/$$/fd` }


lr-x------ 1 fhem fhem 64 Sep  2 17:31 0 -> /dev/null
lrwx------ 1 fhem fhem 64 Sep  2 17:31 4 -> socket:[81378421]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 5 -> socket:[75410971]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 51 -> socket:[76052139]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 53 -> socket:[81400415]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 54 -> socket:[81403706]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 55 -> socket:[76052165]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 56 -> socket:[75413547]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 57 -> socket:[75413548]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 58 -> socket:[75412656]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 59 -> socket:[81403760]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 6 -> socket:[75410972]
lr-x------ 1 fhem fhem 64 Sep  2 17:31 60 -> pipe:[81403761]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 65 -> socket:[75414374]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 7 -> socket:[75410973]
lrwx------ 1 fhem fhem 64 Sep  2 17:31 8 -> socket:[75410974]


Der Vollständigkeit halber: list TYPE=FHEMWEB FD


WEB                      6
WEB_127.0.0.1_33036      55
WEB_192.168.178.254_51746     54
WEB_192.168.178.254_51883     59
WEBphone                 7
WEBtablet                8


Wir haben also überall genau eine offene Verbindung zum FHEM Port.

Hoffentlich kannst du anhand der ganzen Infos jetzt den Fehler eingrenzen.




rudolfkoenig

Vom Windows Client aus geht eine Verbindung zu FHEMWEB, und es gibt noch eine Verbindung zu einem lokalen Client.
list zeigt drei Clients an, davon eins der lokale Client, die anderen zwei sind vermutlich welche vom Windows, von frueher oder von spaeter, die Befehle wurden ja nicht geleichzeitig abgesetzt.

Von den 14 offenen Sockets sind 6 FHEMWEB zuzuordnen, die anderen 8 vermutlich anderen Modulen (telnet, etc), ich wuerde es mit "list .* FD" verifizieren.

Einen Fehler sehe ich nicht.

Roam

Hier das Ergebnis von "list .* FD"


WEB                      6
WEB_127.0.0.1_33036      55
WEB_192.168.178.254_53005     54
WEB_192.168.178.254_53035     59
WEBphone                 7
WEBtablet                8
alexa                    51
alexaFHEMlog             49
deCONZ                   4
global                   3
harmony:discovery        57
harmonyHub               65
maxlan                   58
telnetPort               5

rudolfkoenig

Damit kann man die meisten sockets erklaeren.
Was ist mit "deiner" Methode (Everything)?
"list TYPE=FHEMWEB FD" liefert nur die FHEM-Eintraege, die ein FD haben.

Roam

Das sind dann auch nur die erwarteten:

list TYPE=FHEMWEB FD


WEB                      6
WEB_127.0.0.1_33036      55
WEB_192.168.178.254_53732     54
WEB_192.168.178.254_60571     59
WEBphone                 7
WEBtablet                8

Roam

Hab das Everything übersehen. Da sind es wie gehabt so einige:

WEB_192.168.178.254_49157
Connected
WEB_192.168.178.254_49202
Connected
WEB_192.168.178.254_49239
Connected
WEB_192.168.178.254_49274
Connected
WEB_192.168.178.254_49290
Connected
WEB_192.168.178.254_49316
Connected
WEB_192.168.178.254_49366
Connected
WEB_192.168.178.254_49387
Connected
WEB_192.168.178.254_49445
Connected
WEB_192.168.178.254_49474
Connected
WEB_192.168.178.254_49515
Connected
WEB_192.168.178.254_49597
Connected
WEB_192.168.178.254_49599
Connected
WEB_192.168.178.254_49637
Connected
WEB_192.168.178.254_49680
Connected
WEB_192.168.178.254_49757
Connected
WEB_192.168.178.254_49837
Connected
WEB_192.168.178.254_49926
Connected
WEB_192.168.178.254_49977
Connected
WEB_192.168.178.254_50014
Connected
WEB_192.168.178.254_50088
Connected
WEB_192.168.178.254_50139
Connected
WEB_192.168.178.254_50167
Connected
WEB_192.168.178.254_50187
Connected
WEB_192.168.178.254_50247
Connected
WEB_192.168.178.254_50269
Connected
WEB_192.168.178.254_50306
Connected
WEB_192.168.178.254_50326
Connected
WEB_192.168.178.254_50358
Connected
WEB_192.168.178.254_50402
Connected
WEB_192.168.178.254_50485
Connected
WEB_192.168.178.254_50567
Connected
WEB_192.168.178.254_50568
Connected
WEB_192.168.178.254_50646
Connected
WEB_192.168.178.254_50726
Connected
WEB_192.168.178.254_50735
Connected
WEB_192.168.178.254_50773
Connected
WEB_192.168.178.254_50805
Connected
WEB_192.168.178.254_50881
Connected
WEB_192.168.178.254_50896
Connected
WEB_192.168.178.254_50977
Connected
WEB_192.168.178.254_51065
Connected
WEB_192.168.178.254_51088
Connected
WEB_192.168.178.254_51152
Connected
WEB_192.168.178.254_51236
Connected
WEB_192.168.178.254_51269
Connected
WEB_192.168.178.254_51309
Connected
WEB_192.168.178.254_51385
Connected
WEB_192.168.178.254_51463
Connected
WEB_192.168.178.254_51467
Connected
WEB_192.168.178.254_51791
Connected
WEB_192.168.178.254_51881
Connected
WEB_192.168.178.254_51927
Connected
WEB_192.168.178.254_52014
Connected
WEB_192.168.178.254_52096
Connected
WEB_192.168.178.254_52173
Connected
WEB_192.168.178.254_52214
Connected
WEB_192.168.178.254_52225
Connected
WEB_192.168.178.254_52259
Connected
WEB_192.168.178.254_52278
Connected
WEB_192.168.178.254_52302
Connected
WEB_192.168.178.254_52342
Connected
WEB_192.168.178.254_52388
Connected
WEB_192.168.178.254_52396
Connected
WEB_192.168.178.254_52518
Connected
WEB_192.168.178.254_52605
Connected
WEB_192.168.178.254_52652
Connected
WEB_192.168.178.254_52684
Connected
WEB_192.168.178.254_52747
Connected
WEB_192.168.178.254_52847
Connected
WEB_192.168.178.254_52901
Connected
WEB_192.168.178.254_52927
Connected
WEB_192.168.178.254_52957
Connected
WEB_192.168.178.254_52972
Connected
WEB_192.168.178.254_53042
Connected
WEB_192.168.178.254_53112
Connected
WEB_192.168.178.254_53127
Connected
WEB_192.168.178.254_53181
Connected
WEB_192.168.178.254_53219
Connected
WEB_192.168.178.254_53266
Connected
WEB_192.168.178.254_53306
Connected
WEB_192.168.178.254_53391
Connected
WEB_192.168.178.254_53411
Connected
WEB_192.168.178.254_53477
Connected
WEB_192.168.178.254_53548
Connected
WEB_192.168.178.254_53638
Connected
WEB_192.168.178.254_53719
Connected
WEB_192.168.178.254_53800
Connected
WEB_192.168.178.254_53885
Connected
WEB_192.168.178.254_53949
Connected
WEB_192.168.178.254_53969
Connected
WEB_192.168.178.254_54028
Connected
WEB_192.168.178.254_54050
Connected
WEB_192.168.178.254_54130
Connected
WEB_192.168.178.254_54178
Connected
WEB_192.168.178.254_54210
Connected
WEB_192.168.178.254_54260
Connected
WEB_192.168.178.254_54292
Connected
WEB_192.168.178.254_54328
Connected
WEB_192.168.178.254_54375
Connected
WEB_192.168.178.254_54405
Connected
WEB_192.168.178.254_54456
Connected
WEB_192.168.178.254_54485
Connected
WEB_192.168.178.254_54537
Connected
WEB_192.168.178.254_54555
Connected
WEB_192.168.178.254_54621
Connected
WEB_192.168.178.254_54646
Connected
WEB_192.168.178.254_54700
Connected
WEB_192.168.178.254_54721
Connected
WEB_192.168.178.254_54787
Connected
WEB_192.168.178.254_54797
Connected
WEB_192.168.178.254_54870
Connected
WEB_192.168.178.254_54875
Connected
WEB_192.168.178.254_54944
Connected
WEB_192.168.178.254_54952
Connected
WEB_192.168.178.254_55025
Connected
WEB_192.168.178.254_55032
Connected
WEB_192.168.178.254_55110
Connected
WEB_192.168.178.254_55170
Connected
WEB_192.168.178.254_55188
Connected
WEB_192.168.178.254_55271
Connected
WEB_192.168.178.254_55345
Connected
WEB_192.168.178.254_55353
Connected
WEB_192.168.178.254_55436
Connected
WEB_192.168.178.254_55505
Connected
WEB_192.168.178.254_55535
Connected
WEB_192.168.178.254_55590
Connected
WEB_192.168.178.254_55619
Connected
WEB_192.168.178.254_55659
Connected
WEB_192.168.178.254_55720
Connected
WEB_192.168.178.254_55767
Connected
WEB_192.168.178.254_55792
Connected
WEB_192.168.178.254_55856
Connected
WEB_192.168.178.254_55878
Connected
WEB_192.168.178.254_55934
Connected
WEB_192.168.178.254_55953
Connected
WEB_192.168.178.254_56018
Connected
WEB_192.168.178.254_56104
Connected
WEB_192.168.178.254_56172
Connected
WEB_192.168.178.254_56178
Connected
WEB_192.168.178.254_56251
Connected
WEB_192.168.178.254_56254
Connected
WEB_192.168.178.254_56468
Connected
WEB_192.168.178.254_56545
Connected
WEB_192.168.178.254_56627
Connected
WEB_192.168.178.254_56719
Connected
WEB_192.168.178.254_59137
Connected
WEB_192.168.178.254_59297
Connected
WEB_192.168.178.254_59574
Connected
WEB_192.168.178.254_59683
Connected
WEB_192.168.178.254_59763
Connected
WEB_192.168.178.254_59843
Connected
WEB_192.168.178.254_59936
Connected
WEB_192.168.178.254_60012
Connected
WEB_192.168.178.254_60093
Connected
WEB_192.168.178.254_60164
Connected
WEB_192.168.178.254_60245
Connected
WEB_192.168.178.254_60395
Connected
WEB_192.168.178.254_60483
Connected
WEB_192.168.178.254_60635
Connected
WEB_192.168.178.254_60713
Connected
WEB_192.168.178.254_60719
Connected
WEB_192.168.178.254_60792
Connected
WEB_192.168.178.254_60811
Connected
WEB_192.168.178.254_60853
Connected
WEB_192.168.178.254_60886
Connected
WEB_192.168.178.254_60895
Connected
WEB_192.168.178.254_60961
Connected
WEB_192.168.178.254_61065
Connected
WEB_192.168.178.254_61140
Connected
WEB_192.168.178.254_61215
Connected
WEB_192.168.178.254_61287
Connected
WEB_192.168.178.254_61371
Connected
WEB_192.168.178.254_61452
Connected
WEB_192.168.178.254_61527
Connected
WEB_192.168.178.254_61597
Connected
WEB_192.168.178.254_61658
Connected
WEB_192.168.178.254_61675
Connected
WEB_192.168.178.254_61756
Connected
WEB_192.168.178.254_61837
Connected
WEB_192.168.178.254_61912
Connected
WEB_192.168.178.254_61989
Connected
WEB_192.168.178.254_62071
Connected
WEB_192.168.178.254_62150
Connected
WEB_192.168.178.254_62195
Connected
WEB_192.168.178.254_62221
Connected
WEB_192.168.178.254_62296
Connected
WEB_192.168.178.254_62373
Connected
WEB_192.168.178.254_62435
Connected
WEB_192.168.178.254_62455
Connected
WEB_192.168.178.254_62485
Connected
WEB_192.168.178.254_62536
Connected
WEB_192.168.178.254_62572
Connected
WEB_192.168.178.254_62609
Connected
WEB_192.168.178.254_62688
Connected
WEB_192.168.178.254_62781
Connected
WEB_192.168.178.254_62859
Connected
WEB_192.168.178.254_62941
Connected
WEB_192.168.178.254_63020
Connected
WEB_192.168.178.254_63104
Connected
WEB_192.168.178.254_63172
Connected
WEB_192.168.178.254_63253
Connected
WEB_192.168.178.254_63396
Connected
WEB_192.168.178.254_63549
Connected
WEB_192.168.178.254_63627
Connected
WEB_192.168.178.254_63707
Connected
WEB_192.168.178.254_63778
Connected
WEB_192.168.178.254_63863
Connected
WEB_192.168.178.254_63937
Connected
WEB_192.168.178.254_64013
Connected
WEB_192.168.178.254_64095
Connected
WEB_192.168.178.254_64172
Connected
WEB_192.168.178.254_64247
Connected
WEB_192.168.178.254_64324
Connected
WEB_192.168.178.254_64329
Connected
WEB_192.168.178.254_64375
Connected
WEB_192.168.178.254_64400
Connected
WEB_192.168.178.254_64417
Connected
WEB_192.168.178.254_64550
Connected
WEB_192.168.178.254_64629
Connected
WEB_192.168.178.254_64700
Connected
WEB_192.168.178.254_64711
Connected
WEB_192.168.178.254_64783
Connected
WEB_192.168.178.254_64786
Connected
WEB_192.168.178.254_64827
Connected
WEB_192.168.178.254_64858
Connected
WEB_192.168.178.254_64909
Connected
WEB_192.168.178.254_65021
Connected
WEB_192.168.178.254_65048
Connected
WEB_192.168.178.254_65092
Connected
WEB_192.168.178.254_65098
Connected
WEB_192.168.178.254_65175
Connected
WEB_192.168.178.254_65215
Connected
WEB_192.168.178.254_65322
Connected
WEB_192.168.178.254_65327
Connected
WEB_192.168.178.254_65422
Connected
WEB_192.168.178.254_65457
Connected
WEB_192.168.178.254_65498
Connected
WEB_192.168.178.254_65501

rudolfkoenig

Da die Angaben zeitversetzt kamen: kannst du bitte bestaetigen, dass die "list TYPE=FHEMWEB FD" Liste deutlich kuerzer ist, als die Liste aus Everything?

Roam

Ja kann ich bestätigen. List gibt 2 Verbindungen.

Everything 100 +

rudolfkoenig

Das scheint ein FHEM-Problem zu sein, irgendwo wird $hash->{FD} entfernt, ohne den restlichen Eintrag zu loeschen.
Leider finde ich die passende Stelle im Code nicht.
Kannst du bitte aus Everything die Details fuer so einen kaputten Eintrag zeigen?
Evtl. kann ich aus den Resten ableiten, wer unterwegs war.

Roam

Klar, hier die Details:


Authenticated
0
BUF
���[���ùc7ī"��/c��l{٪z/��p:��
FW_ID
9411
LASTACCESS
1599151169
NAME
WEB_192.168.178.254_49704
NR
11184
NTFY_ORDER
WEB_192.168.178.254_49704
PEER
192.168.178.254
PORT
49704
SNAME
WEB
SSL
STATE
Connected
TEMPORARY
1
TYPE
FHEMWEB
WBCallback
canAsyncOutput
1
websocket
1
Readings
state
Connected
2020-09-03 18:39:29


rudolfkoenig

Da ich trotz laengerem Code-Anstarren keine Idee habe, habe ich eine Fehlermeldung in fhem.pl / TcpServerUtils.pm eingebaut.
Bitte mit den neuen Dateien testen, und das FHEM-Log nach ERROR durchsuchen im Problemfall.

Roam

hab heute morgen ein "update all" gemacht.

Bisher gibts aber noch keine ERROR Meldung im Log, unter Everything steigen aber weiter die Verbindungen.