Fehlermeldungen SQLite / Too many open files

  • Hallo zusammen,


    wir setzen momentan LiveConfig 1.6.4 r2509 auf einem Debian 7 (Wheezy) System ein. Die genaue Konstellation sieht dabei wie folgt aus:


    LiveConfig-Server = VMware vSphere Cluster aus 2 physikalischen ProLiant-Systemen mit eigenem SAN
    Datenbank-Server = VMware vSphere Cluster aus 5 physikalischen ProLiant-Systemen mit eigenem SAN
    Web-Server = VMware vSphere Cluster aus 5 physikalischen ProLiant-Systemen mit eigenem SAN
    Mail-Server = VMware vSphere Cluster aus 3 physikalischen ProLiant-Systemen mit eigenem SAN


    Einmal am Tag hängt sich der LiveConfig-Dienst mit der nachfolgenden Fehlermeldung im Log auf:



    Ab diesem Zeitpunkt ist auch das Webinterface weder über http, noch https (SSL) erreichbar.


    Ist das ein Bug oder haben wir etwas falsch konfiguriert?


    Insbesondere die Meldung "Error while connecting to MySQL server: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" macht uns sehr stutzig, da wir keinen MySQL-Server, sondern den integrierten SQLite nutzen.


    Vielen Dank und beste Grüße
    Levy

  • Ergänzung:


    Wir haben gestern Nachmittag von SQLite auf MySQL umgestellt und prompt kam soeben wieder die o. g. Fehlermeldung und die LiveConfig-Dienste reagierte nicht mehr. Welche "too many open files" sind hier gemeint?

  • Da die Meldung im Kontext von "Error while accepting connection" erscheint, tippe ich darauf, dass es (zu) viele TCP-Verbindungen gibt (wobei das auch komisch ist, da LC in so einem Fall ohnehin keine weiteren Verbindungen mehr annehmen dürfte).


    Wenn Sie diesen Zustand wieder erhalten, lassen Sie sich bitte mal die Liste der offenen Netzwerkverbindungen zu LiveConfig ("netstat -tpn | grep liveconfig") und die Liste der offenen Filehandles (lsof | grep liveconfig) ausgeben.


    Die MySQL-Connect-Meldung kann auftreten, wenn Sie einen MySQL-Server mit LiveConfig verwalten (Serververwaltung -> Datenbank) und die Verbindung fehlschlägt.


    Viele Grüße


    -Klaus Keppler

  • Heute Nacht um exakt 3.00 Uhr war es wieder soweit und LiveConfig versagte seinen Dienst. Hier nun die entsprechenden Ausgaben:


    Code
    root@server-01:~# netstat -tpn | grep liveconfig
    tcp        0      0 78.138.121.20:788       78.138.121.35:42506     VERBUNDEN   13740/liveconfig
    tcp        0      0 78.138.121.20:788       78.138.121.48:59450     VERBUNDEN   13740/liveconfig
    tcp        0      0 78.138.121.20:788       78.138.121.45:37416     VERBUNDEN   13740/liveconfig
    root@server-01:~#


    Bei "lsof | grep liveconfig" sieht es dann aber übel aus. Neben dem Üblichen steht hier um die 7.000 mal das folgende drin:


    Code
    liveconfi 13740 13752 liveconfig 1012u     sock                0,7      0t0  160261446 can't identify protocol


    Auf copy&paste für den gesamten Output wollte ich jetzt aufgrund der Menge verzichten.


    Hilft das weiter?

  • Danke, das hilft schon etwas weiter.
    Die ~7000 Verbindungen sind offenbar Socket-Connections zum LiveConfig-Server-Prozess (im o.g. Beispiel mit PID 13740 - das ist der Prozess, der auch auf Port 788 horcht). Das erklärt dann auch die "Too many open files"-Fehlermeldung.


    Vermutlich läuft um 03:00 Uhr irgendetwas, das LiveConfig aus dem Tritt bringt - evtl. VMWare-Snapshots, Backups o.ä.? Bislang ist uns dieses Verhalten noch nirgendwo aufgefallen oder gemeldet worden.


    Könnten Sie uns bitte die letzten Log-Meldungen (/var/log/liveconfig/liveconfig.log) vor Auftreten des Problems schicken? (also alles zwischen "funktioniert noch" und dem ersten "Too many open files...").
    Am besten wäre es zudem, wenn Sie beim nächsten Auftreten des Problems einen Coredump erzeugen könnten - damit können wir dann genau lokalisieren, wo etwas nicht stimmt. Hierzu gehen Sie bitte wie folgt vor:

    • lokalisieren Sie die PID des LiveConfig-Client-Prozesses (z.B. mit "netstat -tlpn | grep ':788'").
    • wechseln Sie ins Verzeichnis /root: cd /root
    • Starten Sie den GNU-Debugger (gdb) und verbinden sich mit diesem Prozess - z.B. "gdb --pid=13740"
    • erzeugen Sie den Coredump: "gcore"
    • beenden Sie gdb wieder: "quit"
    • komprimieren Sie den Core-Dump: "gzip -9 core.13740"
    • senden Sie die Datei dann per Mail an support@liveconfig.com (falls >20 MB, senden Sie uns ggf einen Download-Link)


    Viele Grüße


    -Klaus Keppler

  • Hallo Herr Keppler,


    um 3.00 Uhr lief bzw. startete nichts besonderes auf dem System. Backups und Snapshots begannen erst zwei Stunden später. Ich habe aber gerade folgendes Verhalten festgestellt:




    So geht das weiter, bis irgendwann die Fehlermeldung "too many..." im liveconfig-Log erscheint.


    Auszug aus liveconfig.log um 10.06 Uhr:



    Den Core-Dump habe ich soeben per Mail an Sie versendet.


    Mit besten Grüßen
    Levy

  • Hallo,


    der Fehler wurde gefunden und beseitigt. Unter bestimmten Umständen wurden die Sockets von nicht erfolgreich aufgebauten LCCP-Verbindungen nicht mehr freigegeben.
    Ein Update (v1.6.4-r2534) läuft derzeit durch die Buildsysteme und wird in den nächsten Stunden in den Repositories bereitgestellt.


    Viele Grüße


    -Klaus Keppler

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!