Apache w / mod_railsセグメンテーション違反
質問
mod_rails(passenger)2.0.3およびEnterprise Ruby 1.8.6を使用してApache 2でRedmineを実行しています。ログインしようとすると、Apacheからセグメンテーション違反が発生することがよくあります。誰も私がこの問題をデバッグする方法を知っていますか? Apacheのerror.logに次のようなメッセージが表示されます。
[Mon Jan 19 17:09:48 2009] [notice] child pid 8714 exit signal Segmentation fault(11)
アプリケーションを動作させる唯一の方法は、システム全体を再起動することです(Apacheを再起動しても効果はありません)。
解決
最初の手順は次のとおりです。
-
コアファイルがシステムのどこに残っているかを確認します(必要に応じてコアダンプを有効にします)。
-
結果のコアファイルに対して
file(1)
を実行します。これはおそらく<!> quot; ... httpd <!> quot;によって生成されますが、確認する必要があります。 -
(2)の実行可能ファイル名と(1)のコアファイルに対して
gdb
を起動し、掘り始めます。コマンドwhere
(またはbt
)を開始するのに適しています。これにより、プロセスがコアをダンプした時点でスタックトレースが得られます。
大量のCコーディング経験がないようですね。幸運を祈ります!この種のエラーを追跡することは、本物の犬になり得ます。ここから(3)のスタックトレースを投稿することもできますが、答えを待つ間、息を止めないでください。せいぜい、失敗した関数名はGoogleにフィードするのに適した文字列です。
他のヒント
セグメンテーション違反で同様の問題が発生しました(11)。ソリューションとしてアップグレードを提供する次の ServerFaultの質問が見つかりました。
Ubuntuの古いバージョンを実行していて、segfaultの問題がありました。 do-release-upgrade
が私のシステムをUbuntu 11.10にもたらし、問題は魔法のように消えました。