
画像のアップロードを処理するために EC2 サーバーを実行しています。ローカル ディスクからサーバーへのアップロードを処理する Flash SWF があり、約 130 枚の画像 (合計約 650 MB) をアップロードしているときに、約 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
このメッセージは、 、ロードされたモジュールの 1 つ、またはその実行環境 (ライブラリ、OS、ハードウェア) のいずれかにバグがあることを意味します。
このバグの技術的な説明は、httpd
メモリがすでに他の用途に解放されていたにもかかわらず、プロセスの一部がメモリ ブロックへのポインタを保持していたというものです。この例では、メモリ ブロックがたまたま他の用途に再利用されていなかったため、エラーは検出され、害はありませんでした。ただし、このエラーが発生した場合、メモリ ブロックが再利用される他のケースでもこのエラーが発生する可能性が高く、その場合はエラーを検出できません。
理想的には、このバグを再現する方法を見つけて、Apache 開発チームにバグ レポートを送信します (バグが後続のバージョンで修正されたと思われる場合を除きますが、このようなバグの場合は、それを判断するのは難しいでしょう)。残念ながら、この種のバグは再現が困難です。Apache Web サイトで、開発チームがこのようなバグのレポートに関して希望を持っているかどうかを検索したり、Apache のメーリング リストで質問したりすることをお勧めします (どれが適切かはわかりません)。もちろん、エラーがサードパーティのモジュールまたはライブラリにある場合は、代わりにその開発チームに問い合わせてください。バグを再現できない限り、これを見つける奇跡的な方法はありません。
ハードウェアの問題を排除するために、メモリ テストを実行することをお勧めします。