Re: php error müllt apache2 log voll

2012-12-19 Diskussionsfäden Grimnin Fridyson




- Ursprüngliche Message -
 Von: Heiko Schlittermann h...@schlittermann.de
 An: lug-dd@mailman.schlittermann.de
 CC: 
 Gesendet: 22:24 Sonntag, 16.Dezember 2012
 Betreff: Re: php error müllt apache2 log voll
 
 Moin,
 
 Grimnin Fridyson fridy_lu...@yahoo.de (Sa 15 Dez 2012 23:35:09 CET):
   Betriebsystemkomponente die die Logfiles schreibt, vor jeder Zeile die
   sie schreibt schaut, sind zB. noch mindestes 30mb freier Speicher? Ja!
  Du könntest im logrotat ein filesize einstellen. wenn du ein paar logs 
 aufheben willst, kannst du sie noch komprimieren.
  (Informationen können verloren gehen)
 
 logrotate ist aber kein Daemon, der dann plötzlich aktiv wird. Sondern
 das mit der Filesize zieht auch nur immer dann, wenn er aufgerufen wird
 (typischerweise 1x täglich)
haste natürlich recht

man könnte das apache log an den rsyslog senden

http://wiki.rsyslog.com/index.php/Working_Apache_and_Rsyslog_configuration

und dann rsyslog so einrichten das es rotiert

http://www.rsyslog.com/doc/log_rotation_fix_size.html

Andreas
 
 
 -- 
 Heiko
 
 ___
 Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
 https://ssl.schlittermann.de/mailman/listinfo/lug-dd
 

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-16 Diskussionsfäden Andreas Kretschmer
tranquillo sportfreund_rob...@gmx.de wrote:

  Die Logs sollten doch auf einer eigenen Partition liegen. Wenn die
  vollläuft, sieht man doch, was die Ursache ist.
 Ich verstehe nicht.
 Der Server hat nur eine Partition (zumindest sehe ich die bei meiner VM
 das nur so).

Ohh okay. Man kann aber auch eine ded. Partition für /var oder /var/logs
machen, und diese monitoren. Dann ist halt /var voll, und nicht Deine
eigentliche Daten-Partition. Vereinfach die Fehlersuche...

Nur weil / voll ist ohne weitere Untersuchung warum einen Zukauf machen
ist aber IMHO, ähm, gaga.


 Die Ursache ist auch klar. Eine Endlosschleife welche beim rumprobieren
 schonmal vorkommt ( die php-standardlösung beim Dateizugriff: while
 (false !== ($file = readdir($src))){ ... } ).

Tja, shit happens...


 
 Ich will das es nicht passiert das ein log welches auf Grund eines
 Benutzerfehlers geschrieben wird den Server platt macht. Also entweder
 irgendwelche harte Grenzen in php oder auf Basis des darunterliegenden
 debian.

Nun ja, Du kannst auch fork-Bomben basteln oder andere böse Dinge. Zum
'spielen' nimmt man halt keine Produktionssysteme.


Andreas
-- 
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect.  (Linus Torvalds)
If I was god, I would recompile penguin with --enable-fly.   (unknown)
Kaufbach, Saxony, Germany, Europe.  N 51.05082°, E 13.56889°


signature.asc
Description: Digital signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-16 Diskussionsfäden tranquillo
Moinsen :)

Am 16.12.2012 09:22, schrieb Andreas Kretschmer:
 tranquillo sportfreund_rob...@gmx.de wrote:

 Die Logs sollten doch auf einer eigenen Partition liegen. Wenn die
 vollläuft, sieht man doch, was die Ursache ist.
 Ich verstehe nicht.
 Der Server hat nur eine Partition (zumindest sehe ich die bei meiner VM
 das nur so).
 Ohh okay. Man kann aber auch eine ded. Partition für /var oder /var/logs
 machen, und diese monitoren. Dann ist halt /var voll, und nicht Deine
 eigentliche Daten-Partition. Vereinfach die Fehlersuche...

 Nur weil / voll ist ohne weitere Untersuchung warum einen Zukauf machen
 ist aber IMHO, ähm, gaga.
Ich bin nicht sicher ob ich den Satz verstanden haben, er lässt sich
schwierig parsen :)
Aber der Zukauf von Speicher war nötig, da die Kiste garnicht mehr
hochfuhr und das RZ mir alternativ anbot bestimmte Dateien zu löschen,
die ich Pfad-genau hätte angeben müssen. Aber weder war zu dem Zeitpunkt
schon klar wo genau das Problem liegt noch was die großen Dateien  auf
dem System sind. Ergo war das die sinnvollste Entscheidung. Zumal das
sowieso schon mehrfach auf der Agenda stand.
 Ich will das es nicht passiert das ein log welches auf Grund eines
 Benutzerfehlers geschrieben wird den Server platt macht. Also entweder
 irgendwelche harte Grenzen in php oder auf Basis des darunterliegenden
 debian.
 Nun ja, Du kannst auch fork-Bomben basteln oder andere böse Dinge. Zum
 'spielen' nimmt man halt keine Produktionssysteme.
Wie ganz oben schon geschrieben, es handelt sich um mein
Dev/Spiel-System. Lokale Installationen nutzen mir überhaupt nichts, da
mein Lappi Windows hat, das würde mindestens erhöhten und bis doppelten
Test und Programieraufwand erzeugen. Zu dem können garnicht alle
Applikationen lokal repliziert werden, da sie in abhängige Gebilde
eingebettet sind. Und zu guter letzt, würde erstens Windows keine 200mb
logfile schreiben und  zweitens der Läppi wegen einer 200mb logfile
nicht abstürzen (der gewonnen Erkenntnisgewinnn wäre also geringer).


Die Idee mit der Pipe finde ich sehr genial und könnte genau das
richtige sein, klingt aber für mich noch etwas kompliziert.
Die Geschichte mit extra logpartition ist sicherlich möglich... aber...
jetzt geht mal ganz tief in euch.. und seid mal ganz ehrlich zu euch
selbst, wenn euch ein Betriebsystem angeboten würde, nennen wir es
Windows BlueFlubber, Mac OS Tigerlilly oder Kim.COM OS worldwide oder
what ever und ihr erfahrt um sicher darauf proggen zu können (nur ganz
schnöder php/sql kram) müsst ihr eine eigene Partition anlegen weil
sonst das logfile den Server innerhalb 1-2Minuten wegschiessen kann..
würdet ihr auch nur eine Minute daran verschwenden dieses Betriebsystem
zur Arbeit in Betracht zu ziehen?
Ich weiß, ihr fühlt euch auf den Schlips getreten weil jemand euer baby
schlecht macht, aber ich sehe es aus absolut praktischer Sicht und ohne
Wertung oder bösen Willen. Aber so eine Lösung kann und will ich nicht
akzeptieren. :)

Naja.. lassen wir das, die Chance das das nochmal Auftritt ist ja extrem
gering, als Antwort darauf hab ich aber mein DiscMonitoring gleich noch
ausgeweitet und verbessert und muss halt noch aufmerksamer bei
Dateizugriffen und Schleifen sein

Viele Grüße und Danke für die umfangreiche Diskussion
Rob

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-16 Diskussionsfäden Andre Klärner
Moin moin,

On Sun, Dec 16, 2012 at 11:42:25AM +0100, tranquillo wrote:
 Am 16.12.2012 09:22, schrieb Andreas Kretschmer:
  tranquillo sportfreund_rob...@gmx.de wrote:
 
  Die Logs sollten doch auf einer eigenen Partition liegen. Wenn die
  vollläuft, sieht man doch, was die Ursache ist.
  Ich verstehe nicht.
  Der Server hat nur eine Partition (zumindest sehe ich die bei meiner VM
  das nur so).
  Ohh okay. Man kann aber auch eine ded. Partition für /var oder /var/logs
  machen, und diese monitoren. Dann ist halt /var voll, und nicht Deine
  eigentliche Daten-Partition. Vereinfach die Fehlersuche...
 
  Nur weil / voll ist ohne weitere Untersuchung warum einen Zukauf machen
  ist aber IMHO, ähm, gaga.

 Aber der Zukauf von Speicher war nötig, da die Kiste garnicht mehr
 hochfuhr und das RZ mir alternativ anbot bestimmte Dateien zu löschen,
 die ich Pfad-genau hätte angeben müssen. Aber weder war zu dem Zeitpunkt
 schon klar wo genau das Problem liegt noch was die großen Dateien  auf
 dem System sind. Ergo war das die sinnvollste Entscheidung. Zumal das
 sowieso schon mehrfach auf der Agenda stand.

Nunja, ich hätte an deiner Stelle wohl die Jungs vom RZ nach einmal du -cshx 
/*/
gefragt, und dann mir die Infos geben lassen. Einfach auf gut Glück dem
Kunden eine Speichererweiterung anzudrehen, nur weil ein paar Logfiles
gewachsen sind ist echt ein starkes Stück.

  Ich will das es nicht passiert das ein log welches auf Grund eines
  Benutzerfehlers geschrieben wird den Server platt macht. Also entweder
  irgendwelche harte Grenzen in php oder auf Basis des darunterliegenden
  debian.
  Nun ja, Du kannst auch fork-Bomben basteln oder andere böse Dinge. Zum
  'spielen' nimmt man halt keine Produktionssysteme.
 Wie ganz oben schon geschrieben, es handelt sich um mein
 Dev/Spiel-System. Lokale Installationen nutzen mir überhaupt nichts, da
 mein Lappi Windows hat, das würde mindestens erhöhten und bis doppelten
 Test und Programieraufwand erzeugen. Zu dem können garnicht alle
 Applikationen lokal repliziert werden, da sie in abhängige Gebilde
 eingebettet sind. Und zu guter letzt, würde erstens Windows keine 200mb
 logfile schreiben und  zweitens der Läppi wegen einer 200mb logfile

doch, würde es (wenn du Apache2 + PHP mit demselben Problem belastest)

 nicht abstürzen (der gewonnen Erkenntnisgewinnn wäre also geringer).

Nun, das nicht, aber  wahrscheinlich echt lahm werden.. Im Endeffekt nehmen
sich da alle Systeme nichts.

 Die Idee mit der Pipe finde ich sehr genial und könnte genau das
 richtige sein, klingt aber für mich noch etwas kompliziert.

Wenn mir mal langweilig ist implementier ich das mal ;)

 Die Geschichte mit extra logpartition ist sicherlich möglich... aber...
 jetzt geht mal ganz tief in euch.. und seid mal ganz ehrlich zu euch
 selbst, wenn euch ein Betriebsystem angeboten würde, nennen wir es
 Windows BlueFlubber, Mac OS Tigerlilly oder Kim.COM OS worldwide oder
 what ever und ihr erfahrt um sicher darauf proggen zu können (nur ganz
 schnöder php/sql kram) müsst ihr eine eigene Partition anlegen weil
 sonst das logfile den Server innerhalb 1-2Minuten wegschiessen kann..
 würdet ihr auch nur eine Minute daran verschwenden dieses Betriebsystem
 zur Arbeit in Betracht zu ziehen?

Nunja, man sollte immer das große Ganze im Blick haben - und ja, alle
Logfiles gehören auf eine sperate Platte oder einen seperaten Container.
Damit meine ich z.B. auch unter Windows die Event-Logs, die auch nur in
einem Ringpuffer von per Default 2MB landen. 

 Ich weiß, ihr fühlt euch auf den Schlips getreten weil jemand euer baby
 schlecht macht, aber ich sehe es aus absolut praktischer Sicht und ohne
 Wertung oder bösen Willen. Aber so eine Lösung kann und will ich nicht
 akzeptieren. :)

Nunja, dann fordere sie einfach von deinem Technischen Dienstleister - den
RZ-Leuten.. denn die haben dir ein System vorgesetzt, was abkackt wenn du
die Logs zumüllst.. es ist weder Aufgabe von Apache noch einem
Syslog-Daemon, den freien Speicher zu überwachen.. Das ist der Job für
andere Tools, und wenn du z.B. zuhause ein Standard Debian mit der
Standard-Partitionierung installiert bekommst du von alleine eine /var
Partition, weil es einfach Sinn macht. Und wenn du da etwas anderes machen
willst endet das genauso wie wenn man ein Auto in der Mitte durchsägt:
es fährt noch, aber hat keine Chance die Ideal-Linie zu halten..


Gruß, Andre

-- 
Andre Klärner


smime.p7s
Description: S/MIME cryptographic signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-16 Diskussionsfäden Konrad Rosenbaum
On Sunday 16 December 2012 11:42:25 tranquillo wrote:
  Nun ja, Du kannst auch fork-Bomben basteln oder andere böse Dinge. Zum
  'spielen' nimmt man halt keine Produktionssysteme.
 
 Wie ganz oben schon geschrieben, es handelt sich um mein
 Dev/Spiel-System.

Genau da liegt ein wesentliches Problem: es mag ein System sein welches als 
Dev bezeichnet wird, aber es liegt nicht in Deiner Kontroller und verursacht 
Kosten wenn Du Fehler machst.

 Lokale Installationen nutzen mir überhaupt nichts, da
 mein Lappi Windows hat, das würde mindestens erhöhten und bis doppelten
 Test und Programieraufwand erzeugen.

VirtualBox. Ich habe auf meinen Entwicklerlaptops mehrere VMs mit 
verschiedenen Betriebssystemen und Versionen - das hat sich als sehr sinnvoll 
erwiesen.

 Zu dem können garnicht alle
 Applikationen lokal repliziert werden, da sie in abhängige Gebilde
 eingebettet sind.

Mach mal einen Schritt zurück von Deinem Problem und denk' ernsthaft über Dein 
Entwicklungsmodell nach. Wenn Du Deine Applikation nicht auf einer von Dir 
kontrollierten Umgebung testen kannst (auch Amokläufe in Logs sind Tests), 
dann hast Du ein ernsthaftes Problem mit der Qualitätssicherung. Tipp: das 
sind Probleme die strategisch angegangen werden müssen.

 Und zu guter letzt, würde erstens Windows keine 200mb
 logfile schreiben und  zweitens der Läppi wegen einer 200mb logfile
 nicht abstürzen (der gewonnen Erkenntnisgewinnn wäre also geringer).

Ich kenne Gegenbeispiele für beide Aussagen. Ich habe oft genug vor Windows-
Servern gesessen, die ihre Software nicht mehr starten wollten, weil das 
Event-Log voll war. Und ich habe auch nahezu jede Art von Hardware/Software-
Kombination abgestürzt, eingefroren, oder sonstwie unbrauchbar gesehen.

Mit genug Schwung kriegt man jeden Server aus seinem stabilen Zustand 
geworfen... ;-)

 Die Idee mit der Pipe finde ich sehr genial und könnte genau das
 richtige sein, klingt aber für mich noch etwas kompliziert.
 Die Geschichte mit extra logpartition ist sicherlich möglich... aber...
 jetzt geht mal ganz tief in euch.. und seid mal ganz ehrlich zu euch
 selbst, wenn euch ein Betriebsystem angeboten würde, nennen wir es
 Windows BlueFlubber, Mac OS Tigerlilly oder Kim.COM OS worldwide oder
 what ever und ihr erfahrt um sicher darauf proggen zu können (nur ganz
 schnöder php/sql kram) müsst ihr eine eigene Partition anlegen weil
 sonst das logfile den Server innerhalb 1-2Minuten wegschiessen kann..
 würdet ihr auch nur eine Minute daran verschwenden dieses Betriebsystem
 zur Arbeit in Betracht zu ziehen?

Ja. Lieber als eins bei dem ich erfahre dass noch niemand eine Lösung für 
dieses Problem hat. Gewöhn Dich an den Gedanken dass Du bei jedem System ein 
paar Regeln beachten musst oder mit den Konsequenzen der Nichtbeachtung zu 
leben hast.

 Ich weiß, ihr fühlt euch auf den Schlips getreten weil jemand euer baby
 schlecht macht, aber ich sehe es aus absolut praktischer Sicht und ohne
 Wertung oder bösen Willen. Aber so eine Lösung kann und will ich nicht
 akzeptieren. :)

Ich habe kein Problem damit - ist ja nicht mein Baby, sondern nur das 
Betriebssystem was sich in meinem Alltag als das produktivste herausgestellt 
hat.

Wenn Du keine Lösungen akzeptieren willst solltest Du Dir ganz dringend eine 
neue Beschäftigung suchen. Beim Winterdienst werden im Augenblick ganz 
dringend Helfer gesucht. ;-P

 Naja.. lassen wir das, die Chance das das nochmal Auftritt ist ja extrem
 gering,

Nein. Das tritt jedesmal auf wenn Du Blödsinn in Schleifen packst. Das ist 
normaler Programmieralltag. Alternativ wirst Du andere interessante Probleme 
sehen.

 als Antwort darauf hab ich aber mein DiscMonitoring gleich noch
 ausgeweitet und verbessert und muss halt noch aufmerksamer bei
 Dateizugriffen und Schleifen sein

Korrekt so.



Konrad


signature.asc
Description: This is a digitally signed message part.
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-16 Diskussionsfäden Heiko Schlittermann
Moin,

Grimnin Fridyson fridy_lu...@yahoo.de (Sa 15 Dez 2012 23:35:09 CET):
  Betriebsystemkomponente die die Logfiles schreibt, vor jeder Zeile die
  sie schreibt schaut, sind zB. noch mindestes 30mb freier Speicher? Ja!
 Du könntest im logrotat ein filesize einstellen. wenn du ein paar logs 
 aufheben willst, kannst du sie noch komprimieren.
 (Informationen können verloren gehen)

logrotate ist aber kein Daemon, der dann plötzlich aktiv wird. Sondern
das mit der Filesize zieht auch nur immer dann, wenn er aufgerufen wird
(typischerweise 1x täglich)


-- 
Heiko


signature.asc
Description: Digital signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

php error müllt apache2 log voll

2012-12-15 Diskussionsfäden tranquillo
Hi,

eine wild gewordene Schleife in PHP müllt mir die
/var/log/apache2/error_meineIP.de.log voll.. und zwar so richtig.
letzte Woche war der Server dadurch so voll das das RZ den Kasten
stoppen, mir eine Speichererweiterung verkaufen und dann neustarten
musste. Dannach hab ich die erste 200mb riesige log gefunden. Eben, beim
arbeiten hab ich eine 300mb große log erzeugt. Klar, ich baue grade an
dem Sript rum, da kommt eine Endlosschleife schon mal vor, es kann doch
aber nicht sein das die Logs da so zu geballert werden das die Maschine
den Heldentot stirbt. Was ausser logging ganz abschalten kann man da machen?

Grüße
Rob

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Thomas Schmidt
Hi!

Am 15. Dezember 2012 12:25 schrieb tranquillo sportfreund_rob...@gmx.de:
 eine wild gewordene Schleife in PHP müllt mir die
 /var/log/apache2/error_meineIP.de.log voll.

Normalerweise greifen PHP-Programme nicht auf andere Programmteile
über den behäbigen Webserver zu, sondern gehen übers Dateisystem oder
die Datenbank. Aber wenn, sollten die abgerufenen URLs wenigstens
funktionierende Scripte enthalten und nicht Fehler verursachen.

Error-Logging abzuschalten, weil Fehler auftreten, ist ja wohl nicht
ernst gemeint ;-)

Thomas

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Andreas Kretschmer
tranquillo sportfreund_rob...@gmx.de wrote:

 Hi,
 
 eine wild gewordene Schleife in PHP müllt mir die
 /var/log/apache2/error_meineIP.de.log voll.. und zwar so richtig.
 letzte Woche war der Server dadurch so voll das das RZ den Kasten
 stoppen, mir eine Speichererweiterung verkaufen und dann neustarten
 musste. Dannach hab ich die erste 200mb riesige log gefunden. Eben, beim

Ähm, whot?

Die Logs sollten doch auf einer eigenen Partition liegen. Wenn die
vollläuft, sieht man doch, was die Ursache ist.


Andreas
-- 
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect.  (Linus Torvalds)
If I was god, I would recompile penguin with --enable-fly.   (unknown)
Kaufbach, Saxony, Germany, Europe.  N 51.05082°, E 13.56889°


signature.asc
Description: Digital signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden tranquillo
Hi Andreas,

Am 15.12.2012 12:32, schrieb Andreas Kretschmer:
 tranquillo sportfreund_rob...@gmx.de wrote:

 Hi,

 eine wild gewordene Schleife in PHP müllt mir die
 /var/log/apache2/error_meineIP.de.log voll.. und zwar so richtig.
 letzte Woche war der Server dadurch so voll das das RZ den Kasten
 stoppen, mir eine Speichererweiterung verkaufen und dann neustarten
 musste. Dannach hab ich die erste 200mb riesige log gefunden. Eben, beim
 Ähm, whot?

 Die Logs sollten doch auf einer eigenen Partition liegen. Wenn die
 vollläuft, sieht man doch, was die Ursache ist.
Ich verstehe nicht.
Der Server hat nur eine Partition (zumindest sehe ich die bei meiner VM
das nur so).
Die Ursache ist auch klar. Eine Endlosschleife welche beim rumprobieren
schonmal vorkommt ( die php-standardlösung beim Dateizugriff: while
(false !== ($file = readdir($src))){ ... } ).

Ich will das es nicht passiert das ein log welches auf Grund eines
Benutzerfehlers geschrieben wird den Server platt macht. Also entweder
irgendwelche harte Grenzen in php oder auf Basis des darunterliegenden
debian.

Grüße
Rob

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden tranquillo
Hi Thomas,

Am 15.12.2012 12:30, schrieb Thomas Schmidt:
 Hi!

 Am 15. Dezember 2012 12:25 schrieb tranquillo sportfreund_rob...@gmx.de:
 eine wild gewordene Schleife in PHP müllt mir die
 /var/log/apache2/error_meineIP.de.log voll.
 Normalerweise greifen PHP-Programme nicht auf andere Programmteile
 über den behäbigen Webserver zu, sondern gehen übers Dateisystem oder
 die Datenbank. Aber wenn, sollten die abgerufenen URLs wenigstens
 funktionierende Scripte enthalten und nicht Fehler verursachen.
Das log war damit voll das die php-Funktion readdir() eine Datei auf
dem Server nicht finden konnte. Diese wurde halt auch über den webserver
raus geprintet.
Das php den Fehler wirft ist völlig legitim, das war ein dummer Fehler
den ich in die Schleife gebaut habe, aber das den Server gleich umhaut
ist nicht akzeptabel.

Grüße
Robert

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Thomas Schmidt
 while (false !== ($file = readdir($src))){ ... } )

Wenn $src eine URL ist, testest du damit die Performance des Servers.
War doch ein voller Erfolg.

Ansonsten ist es extrem unwahrscheinlich, dass du aus Versehen mal
200MB Logfiles produzierst.

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden falk . doering

Hallo Robert,

was du hier bemängelst ist kein PHP-Problem. Jedes Programm kann  
Logfiles zum Überlaufen bringen. Deshalb gibt es auch je ein Dev-,  
Stage- und Live-System. Entweder du entwickelst lokal oder du fängst  
solche Fehler gleich ordentlich ab.


Sonst kann ich nur Andreas zustimmen: Error-Loging ausschalten weil es  
Errors gibt? In welchem Programmierkurs lernt man denn das?


Gruß,

Falk

Zitat von tranquillo sportfreund_rob...@gmx.de:


Hi Thomas,

Am 15.12.2012 12:30, schrieb Thomas Schmidt:

Hi!

Am 15. Dezember 2012 12:25 schrieb tranquillo sportfreund_rob...@gmx.de:

eine wild gewordene Schleife in PHP müllt mir die
/var/log/apache2/error_meineIP.de.log voll.

Normalerweise greifen PHP-Programme nicht auf andere Programmteile
über den behäbigen Webserver zu, sondern gehen übers Dateisystem oder
die Datenbank. Aber wenn, sollten die abgerufenen URLs wenigstens
funktionierende Scripte enthalten und nicht Fehler verursachen.

Das log war damit voll das die php-Funktion readdir() eine Datei auf
dem Server nicht finden konnte. Diese wurde halt auch über den webserver
raus geprintet.
Das php den Fehler wirft ist völlig legitim, das war ein dummer Fehler
den ich in die Schleife gebaut habe, aber das den Server gleich umhaut
ist nicht akzeptabel.

Grüße
Robert

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd





___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden tranquillo
Am 15.12.2012 13:34, schrieb Thomas Schmidt:
 while (false !== ($file = readdir($src))){ ... } )
 Wenn $src eine URL ist, testest du damit die Performance des Servers.
 War doch ein voller Erfolg.
Es war keine  URL sondern die Datei: /var/www/blubb//data.xml .. die
konnte die Funktion aber nicht finden (//), hat aber auch die while
nicht beendet.  Evtl. eine  fehlerhafte Implementation von php?

Trozdem möchte ch in Zukunft gern verhindern, wenn ich mal einen Fehler
mache das ich nicht beim RZ anrufen und die Kiste wiederbeleben lassen muss.
 
 Ansonsten ist es extrem unwahrscheinlich, dass du aus Versehen mal
 200MB Logfiles produzierst.
Awesome! habs schon 2mal in einer Woche geschafft. :)
 (300mb beim 2ten! benötigte Dauer etwa 2min)

Grüße
Rob

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Thomas Schmidt
  while (false !== ($file = readdir($src))){ ... } )
 Es war keine  URL sondern die Datei: /var/www/blubb//data.xml

Was hast du genau gemacht?

?
readdir(/var/www/blubb//data.xml);
?

bringt bei mir:

Warning: readdir() expects parameter 1 to be resource, string given in
/blaaa/crashtest.php on line 2

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden tranquillo
Hi Falk,

Am 15.12.2012 13:35, schrieb falk.doer...@fadoe.de:
 Hallo Robert,

 was du hier bemängelst ist kein PHP-Problem. Jedes Programm kann
 Logfiles zum Überlaufen bringen. 
Oh.. das is ja nicht so schön.

 Deshalb gibt es auch je ein Dev-, Stage- und Live-System. Entweder du
 entwickelst lokal oder du fängst solche Fehler gleich ordentlich ab.
Wie genau fängt man einen Fehler ab von dem man erst weiß wenn man bei
RZ anrufen muss um zu klären warum selbst kein Ping mehr auf seiner
(DEV-) Maschine möglich ist?

 Sonst kann ich nur Andreas zustimmen: Error-Loging ausschalten weil es
 Errors gibt? In welchem Programmierkurs lernt man denn das?
Beide behauptungen sind Unwahr! Weder hatte ich das je vor noch hat
Andreas dem wiedersprochen.
Ich hab mich an die Grupppe gewendet um genau das nicht zu tun.
 Gruß,

 Falk

Grüße
Rob
 Zitat von tranquillo sportfreund_rob...@gmx.de:

 Hi Thomas,

 Am 15.12.2012 12:30, schrieb Thomas Schmidt:
 Hi!

 Am 15. Dezember 2012 12:25 schrieb tranquillo
 sportfreund_rob...@gmx.de:
 eine wild gewordene Schleife in PHP müllt mir die
 /var/log/apache2/error_meineIP.de.log voll.
 Normalerweise greifen PHP-Programme nicht auf andere Programmteile
 über den behäbigen Webserver zu, sondern gehen übers Dateisystem oder
 die Datenbank. Aber wenn, sollten die abgerufenen URLs wenigstens
 funktionierende Scripte enthalten und nicht Fehler verursachen.
 Das log war damit voll das die php-Funktion readdir() eine Datei auf
 dem Server nicht finden konnte. Diese wurde halt auch über den webserver
 raus geprintet.
 Das php den Fehler wirft ist völlig legitim, das war ein dummer Fehler
 den ich in die Schleife gebaut habe, aber das den Server gleich umhaut
 ist nicht akzeptabel.

 Grüße
 Robert

 ___
 Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
 https://ssl.schlittermann.de/mailman/listinfo/lug-dd




 ___
 Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
 https://ssl.schlittermann.de/mailman/listinfo/lug-dd


___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden tranquillo
Hi Thomas,

Am 15.12.2012 13:52, schrieb Thomas Schmidt:
 while (false !== ($file = readdir($src))){ ... } )
 Es war keine  URL sondern die Datei: /var/www/blubb//data.xml
 Was hast du genau gemacht?

 ?
 readdir(/var/www/blubb//data.xml);
 ?

 bringt bei mir:

 Warning: readdir() expects parameter 1 to be resource, string given in
 /blaaa/crashtest.php on line 2
Genau und mit der While von oben drum herum wirds ein zu Silvester sehr
beliebter Serverkracher.

Grüße
Rob

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden falk . doering

Hallo Robert,

ich gebe dir mal einen bösen Tipp, wobei ich mir gleich die Finger in  
Weihwasser waschen werde. Denn was du da in deiner Endlosschleife  
machst widerspricht jeder guten Programmierung:


while (false !== ($file = @readdir($src))){ ... }

Das sollte klappen.

Viele Grüße,

Falk

Zitat von tranquillo sportfreund_rob...@gmx.de:


Hi Thomas,

Am 15.12.2012 13:52, schrieb Thomas Schmidt:

while (false !== ($file = readdir($src))){ ... } )

Es war keine  URL sondern die Datei: /var/www/blubb//data.xml

Was hast du genau gemacht?

?
readdir(/var/www/blubb//data.xml);
?

bringt bei mir:



Warning: readdir() expects parameter 1 to be resource, string given in
/blaaa/crashtest.php on line 2

Genau und mit der While von oben drum herum wirds ein zu Silvester sehr
beliebter Serverkracher.

Grüße
Rob

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd





___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Andre Klärner
On Sat, Dec 15, 2012 at 12:25:29PM +0100, tranquillo wrote:
 eine wild gewordene Schleife in PHP müllt mir die
 /var/log/apache2/error_meineIP.de.log voll.. und zwar so richtig.
 den Heldentot stirbt. Was ausser logging ganz abschalten kann man da machen?

Moin Rob,

hast du mal geschaut wie du dem Apache beibringst, dass ein PHP-Skript nur
so-und-soviele Sekunden laufen darf? Dann wird egal was für eine
Endlos-Schleife du produzierst das Skript getötet, und hat keine
Möglichkeit dein System zuzumüllen.
(http://php.net/manual/de/info.configuration.php#ini.max-execution-time)

Ansonsten kannst du ja deine Entwicklungs-Logs auf eine seperate
Partition/Loop-Device packen, und darauf auch noch mir einer Quota arbeiten
(sofern das von deiner Maschine unterstützt wird).

Ich denke beide Varianten in Kombination sind am idealsten. Ich hab dazu
immer wenn ich entwickle ein Terminal offen, dass ein
tail -f /var/log/apache2/error-foo.com.log macht damit mir erstens
kleinere Syntax-Fehler schneller auffallen, und zudem macht sich dann eine
Log-Flut schnell bemerkbar.. und dann kann ich gleich von Hand das Script
mit der höchsten CPU-Zeit töten.

Gruß, Andre

-- 
Andre Klärner


smime.p7s
Description: S/MIME cryptographic signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Andre Klärner
On Sat, Dec 15, 2012 at 05:27:03PM +0100, tranquillo wrote:
 vielen Dank für die ganzen Vorschläge und Hinweise.
 Allerdings glaube ich,  werd ich immer noch nicht wirklich verstanden.
 Ich hätte also gerne eine Lösung in der Form das die
 Betriebsystemkomponente die die Logfiles schreibt, vor jeder Zeile die
 sie schreibt schaut, sind zB. noch mindestes 30mb freier Speicher? Ja!
 - Ok logge das Problem ... Nein! - Email an mich: Junge, Du hast ganz
 andere Probleme als diese Logzeile: ...

Tja, dann viel Spass beim Apache2 patchen und in Zukunft betreuen..

Besser ist du packst die Apache-Logs auf ne seperate Partition und überwach
den Füllgrad dort mit OS-Mitteln, Nagios, Munin oder ähnlichem.

Warum sowas nicht im Apache implementiert ist kann ich dir auch sagen:
Jeder mit etwas Verstand wird nicht auf dem gefährlichen Produktiv-System
neuen völlig ungetesteten Code ausführen, weil es immer sein kann, das man
sich damit etwas zerschießt, vielleicht auch nur wenn man ein neues Modul
installiert. Deswegen gibt es Testlandschaften, die zwar Geld und Zeit
kosten, aber einem auch riesigen Stress ersparen.

Demzufolge würde ich dir raten, dass du neuen Code idealerweise nicht auf
dem Produktivsystem testest, sondern lieber lokal mit einer kleinen
Apache/PHP-Installation. Und versuch immer zu überlegen: Was sind die
Möglichkeiten das etwas schiefgeht? Was passiert wenn z.B. die Datei nicht
existiert? Enthält der Dateiname Komponenten die aus einer Nutzer-Eingabe
kommen? Wenn du dir solche Fragen bei jedem neuen Block stellst wird du
viel weniger Fehler machen.

Gruß, Andre

-- 
Andre Klärner


smime.p7s
Description: S/MIME cryptographic signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Heiko Schlittermann
Moin,

tranquillo sportfreund_rob...@gmx.de (Sa 15 Dez 2012 17:27:03 CET):
 Betriebsystemkomponente die die Logfiles schreibt, vor jeder Zeile die
 sie schreibt schaut, sind zB. noch mindestes 30mb freier Speicher? Ja!
 - Ok logge das Problem ... Nein! - Email an mich: Junge, Du hast ganz
 andere Probleme als diese Logzeile: ...

Wenn Du partout keine eigene Partition für das Logging vorsehen
möchtest, kannst Du den Apachen auch in eine Pipeline loggen lassen.
Diese Pipeline kann ein von Dir geschriebener Script sein, der dann 
genau das tut, was Du möchtest - z.B. prüfen, ob noch genug Platz ist,
und dann etwas schlaues tun, wenn keiner mehr da ist.

Ich meine, das wird mit einigen wenigen Zeilen *sh oder einer fast
beliebigen P-Sprache machbar sein.

Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
-- 
 SCHLITTERMANN.de  internet  unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --- key ID: 7CBF764A -
 gnupg fingerprint: 9288 F17D BBF9 9625 5ABC  285C 26A9 687E 7CBF 764A -
(gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2  7E92 EE4E AC98 48D0 359B)-


signature.asc
Description: Digital signature
___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Grimnin Fridyson


 Hi @ all,
 Am 15.12.2012 16:51, schrieb Andre Klärner:
  Moin Thomas,
  Gruß, Andre
 
 vielen Dank für die ganzen Vorschläge und Hinweise.
 Allerdings glaube ich,  werd ich immer noch nicht wirklich verstanden.
 Wenn man entwickelt, baut man zwangsläufig viel testcode und damit
 potentiell schonmal viel Stuss der Fehler wirft. Das ist auch gut so,
 man übt bzw. versucht ja herum. Das da Fehler geworfen werden ist total
 in Ordnung und auch gewünscht (na klar sichere  ich -jetzt- die Schleife
 mit einem is_dir($src) ab, nachdem  klar ist das es vorkommmen kann das
 es den Server wegknallt wenn das nicht gemacht wird), aber ich will
 nicht das bei der nächsten komischen Konstellation von Code das wieder
 das Log voll läuft und ich wieder beim RZ anrufen muss.
 Ich hätte also gerne eine Lösung in der Form das die
 Betriebsystemkomponente die die Logfiles schreibt, vor jeder Zeile die
 sie schreibt schaut, sind zB. noch mindestes 30mb freier Speicher? Ja!
Du könntest im logrotat ein filesize einstellen. wenn du ein paar logs aufheben 
willst, kannst du sie noch komprimieren.
(Informationen können verloren gehen)
 - Ok logge das Problem ... Nein! - Email an mich: Junge, Du hast 
 ganz
 andere Probleme als diese Logzeile: ...
da ist doch schnell ein kleines Überwachungsscript geschrieben das schaut ob in 
der letzten stunde ein verzeichniss zu wächst

du kannst dir auch eine quota einrichten und dich an mailen lassen wenn es zu 
viel wird (könntest auch einen Container mit fester Größe erstellen und in 
als var mounten dann sollte dir dein system nicht stehen bleiben, Informationen 
gehen aber an mass verloren)

Andreas
 
 Viele Grüße
 Rob
 
 ___
 Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
 https://ssl.schlittermann.de/mailman/listinfo/lug-dd
 

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd


Re: php error müllt apache2 log voll

2012-12-15 Diskussionsfäden Rene Thiel
Am 15.12.2012 17:27, schrieb tranquillo:
 vielen Dank für die ganzen Vorschläge und Hinweise.
 Allerdings glaube ich,  werd ich immer noch nicht wirklich verstanden.

Ich glaube schon, dass die Mehrheit Dein Problem verstanden hat.

Begrenzungen in logrotate/rotatelogs würde ich jedoch nicht empfehlen,
da Dir dadurch möglicherweise notwendige Infos entgehen könnten.

Besser wäre in Deinem Fall, wie auch schon geschrieben wurde, saubere
Programmierung - meint: Fehler bereits innerhalb des Scripts abfangen.

Und vor allem, wie Dir ebenfalls bereits empfohlen wurde, nicht auf
dem Live-System testen, sondern eine identische lokale Installation
einrichten oder gegebenenfalls einen gleichwertigen Test-Server mieten.


Gruß
René Thiel (Rennkuckuck)
mailto:r...@rennkuckuck.de
-- 
http://rennkuckuck.de - Die Rumänien-Seiten
http://rtol.de - Dynamische Webseiten mit PHP, MySQL und CSS

___
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd