0

mod_rails (passenger) 2.0.3 および Enterprise Ruby 1.8.6 を使用して Apache 2 で Redmine を実行しています。ログインしようとすると、Apache から segfault が頻繁に発生します。この問題をデバッグする方法を知っている人はいますか? Apache の error.log に次のようなものが表示されます。

[2009 年 1 月 19 日月曜日 17:09:48] [通知] 子 pid 8714 終了信号 セグメンテーション違反 (11)

その後、アプリケーションを動作させる唯一の方法は、システム全体を再起動することです (Apache のみを再起動しても効果はありません)。

4

2 に答える 2

1

最初のステップは次のとおりです。

  1. コア ファイルがシステムのどこに残っているかを調べます (必要に応じてコア ダンプを有効にします)。

  2. file(1)結果のコア ファイルで実行します。これはおそらく「... generated by httpd」と表示されますが、確認することもできます。

  3. gdb(2) の実行ファイル名と (1) のコア ファイルに対して起動し、掘り下げを開始します。コマンドwhere(またはbt) は、開始するのに適した場所です。これにより、プロセスがコアをダンプした時点のスタック トレースが得られます。

あなたは C コーディングの経験があまりないように思えますが、頑張ってください! この種のエラーを追跡することは、本当の犬になる可能性があります。(3) のスタック トレースをここに投稿してみてください。せいぜい、失敗した関数名は Google にフィードするのに適した文字列かもしれません。

于 2009-01-19T21:49:59.570 に答える
0

セグメンテーション違反で同様の問題が発生しました(11)。解決策としてアップグレードを提供したServerFaultで次の質問を見つけました。

古いバージョンのUbuntuを実行していて、セグメンテーション違反の問題がありました。do-release-upgradeシステムをUbuntu11.10に移行すると、問題は魔法のように解消されました。

于 2012-03-06T15:07:28.503 に答える