seit kurzem habe ich zwischendurch das Problem, dass ich mich am Raspberry mit der Fehlermeldung “too many open files” nicht mehr anmelden kann. Nach neustart (über Strom) geht’s wieder.
Bei der Suche nach dem Problem ist mir aufgefallen, dass homegear nach dem start in docker sehr viele dateien aufmacht und das evtl. zum Problem führen kann. Im Anhang ist die ausgabe von lsof | grep homegear zu finden nachdem homegear 10 minuten in docker mit folgendem Befehl läuft (ich verwende übrigens nur das MAX-Modul):
ich bin mir nicht sicher, ob die lsof-Ausgabe an dieser Stelle maßgeglich ist. Diese ist bei mir nämlich wesentlich größer (17283), als die maximale erlaubte Anzahl an geöffneten Dateien (1024). Schau mal, was ls -l /proc/<Prozess-ID>/fd sagt? Das gibt dir wirklich die offenen Dateideskriptoren zurück. Der Homegear-Hauptprozess sollte ca. 20 bis 30 offene Deskriptoren haben. Die anderen Homegear-Prozesse 4 bis 5.
Du hast recht - es sind sogar nur 15 offene dateien. Ich gestehe auch, dass ich kein Linux-Experte bin, aber lsof war der Befehl, den meine Recherche ergeben hat. Kannst Du mich evtl noch in die richtige Richtung bei der Suche nach dem Fehlerhaften Prozess schubsen?
sorry für die späte Antwort. Ich müsste allerdings selbst Google bemühen, um das Problem zu identifizieren. Du bist bisher der einzige, von dem ich mit diesem Problem weiß. Solltest du etwas herausfinden, immer her damit ;-). Irgendein Prozess öffnet bei dir offenbar viele Dateien. Du könntest zum Beispiel die Dateien im Ordner fd in allen allen /proc-Ordnern zählen. Das müsste Aufschluss darüber geben, welcher Prozess so viele Dateien öffnet.
vielen Dank und keine Sorge wegen der späten Antwort - ich bin froh und dankbar, dass Du das Projekt überhaupt treibst und dich kümmerst! (Vielen Dank für die super Arbeit an der Stelle!)
Ich werde mich dann mal auf die Suche begeben - das ist so ein ganz tolles Problem, dass nur alle x Wochen auftritt und es mir in dem moment auch unmöglich macht per ssh an den Pi zu kommen. Hab jetzt erstmal den root-login aktiviert in der Hoffnung, dass ich dann noch per ssh drankomme um zu schauen, was da überhaupt los ist.
ich habe exakt das gleiche Problem wie @DOliana. Ich betreibe Homegear neben weiteren Docker-Containern auf einem Raspberry Pi 2. Nach ca. 6-7 Tagen erhalte ich das identische Fehlerbild.
Der Fehler tritt erst auf, seit ich das Docker-Image für den Raspberry Pi verwende. Zuvor liefen Homegear & Co. auf einem Intel-NUC-System. Dieses System lief über Wochen und Monate stabil. Beim Migrieren habe ich nur die Konfiguration übernommen, mehr nicht (wollte logischerweise keine neuen Geräte anlernen). Ich nutze Homegear ausschließlich mit Homematic-Thermostaten sowie zwei Homematic-Tür-/Fenstersensoren (also das BidCos-Modul).
Der Fehler wird mit ziemlicher Sicherheit durch den Prozess “homegear-management” verursacht - wenn ich hier das Logfile ansehe, dann wird dort im Abstand von ca. 12s mitgeloggt “Could not connect to socket. Error: No such file or directory”. Analog dazu steigt unter /proc/pid-homegear-management/fd die Zahl der geöffneten Sockets kontinuierlich - aktuell sind es ca. 4800 (Homegear wurde heute morgen neu gestartet).
Hat jemand eine Idee wie ich herausfinden kann, was das Verhalten auslöst? Ich habe bereits den Wert des Debug-Level auf das Maximum gesetzt, erhalte allerdings keine detaillierten Fehlermeldungen außer der obigen.
@DOliana: Bist du bei der Eingrenzung des Fehlers weiter gekommen?
Nein, ich konnte leider nichts finden. Das Ganze wird auch immer komischer: An sich läuft alles stabil bis ein container (meistens der Logitech Media Server) durch watchtower aktualisiert wird, dann geht nichts mehr und ich komme auch nicht mehr auf den RPi und kann somit auch nichts analysieren…
Ja klar, wenn ich es abstelle läuft alles rcht stabil.Da das problem laut sathya auch nicht über lsof feststellbar ist, tippe ich aktuell auch nicht auf homegear. Auf der anderen Seite habe ich gerade nochmal geschaut und der homegear-management prozess hat laut lsof 133309 offene Dateien (was laut ulimit gra nicht möglich sein sollte?).
Hallo zusammen, ich konnte das Problem zwischenzeitlich “lösen”. Wobei der Begriff Lösung vielleicht nicht ganz passend ist - ich habe die Konfiguration sowie die Gerätedatenbank neu erzeugt (ergo die Geräte auch neu gepaired). Nun tritt der Fehler scheinbar nicht mehr auf - zumindest stehen keine Einträge mehr im Logfile und die Ausgabe von lsof sieht auch gut aus.
Ich vermute jedoch dass es in Homegear einen Bug gibt der verhindert, dass Sockets im Fehlerfall korrekt wieder geschlossen werden. Das würde erklären, warum die Anzahl der offenen Sockets kontinuierlich ansteigt.
die Logmeldungen kannst du ignorieren. Das liegt daran, dass du kein Echtzeitlinux installiert hast.
Eigentlich sollten alle Sockets im Fehlerfall geschlossen werden. Ich will aber trotzdem nicht ausschließen, dass einen Bug gibt, welcher nur in Dockercontainern zum Tragen kommt.