2009-01-19 33 views
0

我使用mod_rails(passenger)2.0.3和Enterprise Ruby 1.8.6在Apache 2上運行Redmine。每當我嘗試登錄時,我經常會從Apache獲得段錯誤。任何人都知道我可以如何調試這個問題?我看到這樣的事情在Apache的error.log中:Apache w/mod_rails分段錯誤

[週一1月19日17時09分48秒2009] [聲明]兒童PID 8714退出信號分割故障(11)

的唯一途徑,我可以得到應用程序工作後,重新啓動整個系統(重新啓動Apache只是沒有幫助)。

回答

1

第一步驟是:

  1. 找出核心文件被拋在哪裏是你的系統(啓用如果需要核心轉儲)。

  2. 在生成的核心文件上運行file(1)。這可能會說「...由httpd生成」,但也可以檢查。

  3. 根據(2)的可執行文件名和(1)的核心文件啓動gdb,並開始挖掘。命令where(或bt)是一個開始的好地方:這將在進程轉儲核心時爲您提供堆棧跟蹤。

這聽起來像你沒有大量的C編碼經驗,所以祝你好運!追查這種錯誤可能是一條真正的狗。您可以嘗試從(3)張貼堆棧跟蹤,但在等待答案時不要屏住呼吸。充其量,失敗的函數名稱可能是一個很好的字符串,可以提供給Google。

+0

在大多數系統中,您必須使用此命令啓用核心轉儲:ulimit -c 9999999 – 2009-01-20 17:36:42

0

我遇到了一個類似的問題與段錯誤(11)。發現以下提供升級作爲解決方案的question on ServerFault

運行的是舊版本的Ubuntu,並且出現了段錯誤問題。 A do-release-upgrade將我的系統帶到了Ubuntu 11.10,這個問題神奇地消失了。