Apache Errorlog 800MB groß durch Froxlor warnings

  • Nabend alle zusammen,

    Code
    [Tag/Uhrzeit] [error] [client 123.ip.789.255]PHP Warning: readdir() expects parameter 1 to ba rescource, boolean given in /var/www/froxlor/lib/functions.php on line 55



    Die Meldung würde mich ja nur halb so viel stören, wenn sie nicht zwichendurch mal auf 11 gb anwachsen würde. Das ist der bisherige Rekord. Jetzt kam ich mal auf die Idee, die Datei nicht einfach runterzuladen, sondern auch mal direkt in der Shell zu öffnen, anstatt sie immer nur zu löschen. Vergleicht man Zeile 1 mit Zeile 23943 (in der letzten Zeile, irgendwo im Bereich 5 Millioenen), fällt einem etwas auf: Es ist auf die Sekunde genau die selbe! Meine Froxlor installation ist vom Auslieferungsimage. An Froxlor selbst habe ich (bewusst) nichts geändert. Das Problem habe ich von Anfang an. Ich habe auch keine ahnung, wann es auftritt und wie ich es reproduzieren kann. Allerdings ist um Zeile 55 folgendes:

    Code
    while(false !== ($filename = readdir($dirhandle)))


    innerhalb der findIncludeClass funktion. Erscheint logisch, warum der Fehler sich wiederholt. Aber so oft, dass daraus grob 5 Milliionen Zeilen in einer Sekunde (und damit meine ich wirklich eine Sekunde!). Trotzdem frage ich mich, ob daher vielleicht die "Mein vServer reagiert kaum noch, die CPU klebt bei 100%" Probleme kommen, bisher wurde dafür ja anscheind keine Lösung gefunden und so eine meeega I/O Last wirkt sich ja sicher auf das ganze Node aus.
    In so fern, werde ich erstmal die Datei auf ein neues löschen, und Froxlor erstmal meiden.
    Sysstat hat die Logs bereits gelöscht, sonst habe ich auch nichts installiert, was die I/O überwachen würde. Glücklicherweise gibt es in VCP ja eine Funktion, die überwacht, ob der voll ausgelastet ist und das speichert. Und er war voll ausgelastet.


    MFG Askuri


    PS: Das hier ist eine mischung aus einem möglicherweise fatalen Bug (report) und einer Frage, wie man das vermeiden kann (logging austellen steht nicht zur auswahl)
    Aber mal nebenbei: 800mb geschreiben in weniger als einer Sekunde! Respekt an Netcup bzw. Respekt an mein Hostsystem :o

  • Du könntest zu mindestens temporär ein @ vor das readdir() setzen. Damit wird die Fehlerausgabe für diese Zeil unterdrückt und es sollte kein Logeintrag angelegt werden.


    Deine Froxlor Version ist aktuell, oder? Hast du schon im Bugtracker oder Forum der Froxlor Entwickler nachgefragt?



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Dann aktualisiere die einmal, vorher hat eine weitere Fehlersuche oder Meldung an die Entwickler wenig Sinn :)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Froxlor ist aktuell. Im Bugtracker ist nichts bekannt. Schätze ich werde einfach die Funktion @ten, da ich ja bisher keine Einschränkung festellen konnte. Sauber fixen geht zwar anders, ist aber immernoch besser, als die überladene Log und unnützes HDD stressen ;)

  • An die Entwickler könntest du es trotzdem melden, ist vielleicht ein ernst zu nehmender Bug, der nur in bestimmten Konstellationen auftritt.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)