
我有一個正在運行的 EC2 伺服器,用於處理圖像上傳。我有一個 flash swf,用於處理從本機磁碟上傳到伺服器的操作 - 在上傳大約 130 個映像(總共約 650MB)時,在大約第 45 個映像之後,我的伺服器日誌檔案中出現以下錯誤。
- glibc 偵測到 /usr/sbin/httpd:雙重釋放或損壞 (!prev):0x85a6b990 **
這個錯誤是什麼意思?
伺服器已停止回應,因此我將重新啟動它。我該從哪裡開始尋找這個問題的原因呢?
謝謝
一些資訊 -
Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6 mod_ssl/2.2.9 OpenSSL/0.9.8b 設定 Fedora 8
答案1
httpd
此訊息表示在其載入的模組之一或其執行環境(庫、作業系統、硬體)中存在錯誤。
該錯誤的技術解釋是,進程的一部分httpd
保留了指向周圍記憶體區塊的指針,即使記憶體已釋放以供其他使用。在這種情況下,錯誤被捕獲,並且沒有造成任何損害,因為該記憶體區塊碰巧沒有被重用於其他用途。但是,如果您看到此錯誤,則很可能是在重複使用記憶體區塊的其他情況下出現的,然後該錯誤就無法偵測到。
理想情況下,您會找到一種方法來重現此錯誤,並向 Apache 開發團隊發送錯誤報告(除非您認為該錯誤已在後續版本中修復,但對於這樣的錯誤很難說)。不幸的是,這種錯誤很難重現。您可能想在 Apache 網站上搜尋開發團隊是否有關於報告此類錯誤的偏好,請在某些 Apache 郵件列表上詢問(我不知道哪一個合適)。當然,如果錯誤出現在第三方模組或庫中,您應該聯絡其開發團隊。除非您能夠重現該錯誤,否則沒有什麼神奇的方法可以找到這個問題。
為了排除硬體問題,您可能需要執行記憶體測試。