Hilfe!! Wo kommen diese Core-Dateien her?!

MagicJojo

Registered User
Hallo,

seit der Umstellung von mod-php5 auf PHP5-CGI spuckt Apache 2 immer wieder core.1234-Dateien aus. Wo zum Teufel kommen die her? Sie sind immer paar Mb groß und stören tierisch.

Viele Grüße
MagicJojo
 
Dein PHP-CGI stürzt ab. :eek: Die core-Dateien sind Abbilder des Arbeitsspeichers im Absturzmoment und können mit einem Debugger (z.B. gdb) untersucht werden, um die genaue Absturzursache herauszufinden. Wenn Du das nicht vorhast, kannst Du eigentlich die Erstellung dieser Datei auch ganz unterbinden (ulimit -c 0).
 
Danke!

Code:
# gdb -c core.24075
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
Core was generated by `/usr/bin/php5-cgi faq.php'.
Program terminated with signal 11, Segmentation fault.
[New process 24076]
[New process 24075]
#0  0xb67d13cf in ?? ()
(gdb)
 
Deine faq.php referenziert einen "falschen" Speicherbereich und löst einen Segmentation fault aus.

Code:
SIGSEGV      11       Core    Invalid memory reference
 
Ich habe 2 Gb RAM und verbrauche momentan nur 170 Mb! An was kann das liegen? Wie kann ich das beheben?
 
Es geht nicht darum, dass Dein RAM Probleme hat, sondern Deine faq.php mit dem Speicher falsch umgeht. Bspw. wenn Du einen 8Byte großen Wert in ein TYNIINT packen willst o.ä.
Du solltest zum Beheben Deines Problems die Datei faq.php überprüfen/überarbeiten.
 
Naja es ist nur so dass die faq.php Bestandteil von vBulletin ist und der Fehler bei fast jedem Aufruf jeder PHP-Datei erzeugt wird :confused:
 
Ich habe die php.ini vom PHP-Modul einfach in den CGI-Ordner kopiert, kanns an dem vielleicht liegen dass jetzt irgendwelche wichtigen Optionen nicht gesetzt sind?
 
Komisch ... jetzt habe ich Apache 2 gerestartet und nun tauchen seit 10 Minuten keine Coredumps mehr auf. Mich würde aber trotzdem interessieren wie es dazu kam, also wenn jemand eine Idee hat: Raus damit!
 
Du solltest zum Beheben Deines Problems die Datei faq.php überprüfen/überarbeiten.
Nein, das ist ein Interpreter internes Problem!
Wohl keins im PHP Quellcode.

Oft passiert sowas, wenn die PHP Version nicht zu den geladenen *.so Dateien passt!

Tipp:
Alle, php-cgi und die benötigten *.so Dateien neu kompilieren.
 
Die Abstürze passieren vermutlich, wenn jemand eine bestimmte URL-aufruft.
Vielleich ist das heute das erste mal wieder passiert.

Eigentlich müßte auch das Apache-Error-Log (oder das vom vHost - jenachdem) ebenfalls von Fehlern wimmeln.

Es gab auch mal einen Fehler in PHP, der bei bestimmten Kompilaten den Apache erst abschoß, wenn er mittels "reload" neu gestartet wurde - typischerweise durch logrotate. Sowas ist schwer zu finden, da es erst einen Tag später auftritt. (Unbefriedigende) Lösung: reload durch restart ersetzen. Siehe z.B. [post=150624]hier[/post].
 
Nein, daran liegt es nicht. Und es geschieht auch nur bei paar vHosts, nicht bei allen... Apache habe ich selbst compiliert, aber das Paket PHP-CGI dazuinstalliert. Außerdem verwende ich eh immer restart statt reload. Logrotate wird bei mir nur täglich ausgeführt, die Dateien sind aber schon nach wenigen Minuten/Stunden wieder da :mad:
 
Das Apache-Errorlog zeigt übrigens nichts interessantes, außer des Öfteren:
Code:
cannot use a full URL in a 401 ErrorDocument directive --- ignoring!
Aber das kann doch nicht die Core Dumps auslösen, oder?! Ich habe gerade PHP-CGi neu installiert und der Fehler kommt wieder :(

//Edit: Vielleicht ist es ein Bug, denn dann würde ich eine etwas ältere PHP-Version installieren. Wie geht das in Debian Lenny?
 
Last edited by a moderator:
Back
Top