glibc 偵測到…httpd: double free or Corruption 是什麼意思?

glibc 偵測到…httpd: double free or Corruption 是什麼意思?

我有一個正在運行的 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 郵件列表上詢問(我不知道哪一個合適)。當然,如果錯誤出現在第三方模組或庫中,您應該聯絡其開發團隊。除非您能夠重現該錯誤,否則沒有什麼神奇的方法可以找到這個問題。

為了排除硬體問題,您可能需要執行記憶體測試。

相關內容