
Ich habe einen EC2-Server in Betrieb, den ich zum Hochladen von Bildern verwende. Ich habe eine Flash-SWF-Datei, die das Hochladen von meiner lokalen Festplatte auf den Server übernimmt. Beim Hochladen von etwa 130 Bildern (insgesamt etwa 650 MB) trat nach etwa dem 45. Bild der folgende Fehler in meiner Server-Protokolldatei auf.
- glibc hat /usr/sbin/httpd erkannt: doppelte Freigabe oder Beschädigung (!prev): 0x85a6b990 **
Was bedeutet dieser Fehler?
Der Server reagiert nicht mehr, ich werde ihn also neu starten. Wo soll ich anfangen, die Ursache dieses Problems zu finden?
Danke
einige Infos -
Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6 mod_ssl/2.2.9 OpenSSL/0.9.8b konfiguriert Fedora 8
Antwort1
httpd
Diese Meldung bedeutet, dass entweder ein Fehler in , einem der geladenen Module oder in der Ausführungsumgebung (Bibliotheken, Betriebssystem, Hardware) vorliegt .
Die technische Erklärung des Fehlers ist, dass ein Teil des httpd
Prozesses einen Zeiger auf einen Speicherblock beibehielt, obwohl der Speicher bereits für eine andere Verwendung freigegeben worden war. In diesem Fall wurde der Fehler erkannt und verursachte keinen Schaden, da der Speicherblock zufällig nicht für etwas anderes wiederverwendet wurde. Wenn Sie diesen Fehler jedoch sehen, ist es sehr wahrscheinlich, dass er auch in anderen Fällen auftritt, in denen der Speicherblock wiederverwendet wird, und dann ist der Fehler nicht mehr zu erkennen.
Im Idealfall würden Sie einen Weg finden, diesen Fehler zu reproduzieren und einen Fehlerbericht an das Apache-Entwicklungsteam senden (es sei denn, Sie glauben, dass der Fehler in einer nachfolgenden Version behoben wurde, aber bei einem solchen Fehler wäre das schwer zu sagen). Leider ist diese Art von Fehler schwer zu reproduzieren. Sie können auf der Apache-Website nachsehen, ob das Entwicklungsteam Präferenzen bezüglich der Meldung solcher Fehler hat, oder auf einer Apache-Mailingliste nachfragen (ich weiß nicht, welche geeignet wäre). Wenn der Fehler in einem Drittanbietermodul oder einer Bibliothek liegt, sollten Sie sich natürlich stattdessen an das Entwicklungsteam wenden. Es gibt keine Wundermethode, um dies herauszufinden, es sei denn, Sie können den Fehler reproduzieren.
Um ein Hardwareproblem auszuschließen, sollten Sie einen Speichertest durchführen.