0

我在 Apache 2 上使用 mod_rails (passenger) 2.0.3 和 Enterprise Ruby 1.8.6 运行 Redmine。当我尝试登录时,每隔一段时间我就会收到来自 Apache 的段错误。有人知道我如何调试这个问题吗?我在 Apache 的 error.log 中看到了类似的内容:

[Mon Jan 19 17:09:48 2009] [notice] child pid 8714 exit signal Segmentation fault (11)

之后我可以让应用程序工作的唯一方法是重新启动整个系统(仅重新启动 Apache 没有帮助)。

4

2 回答 2

1

第一步是:

  1. 找出核心文件留在系统上的位置(必要时启用核心转储)。

  2. file(1)在生成的核心文件上运行。这可能会说“...由 httpd 生成”,但也需要检查一下。

  3. 启动gdb(2) 中的可执行文件名称和 (1) 中的核心文件,然后开始挖掘。命令where(或bt)是一个很好的起点:这将在进程转储核心时为您提供堆栈跟踪。

听起来你没有大量的 C 编码经验,祝你好运!追查这种错误可能是一条真正的狗。您可以尝试在此处发布 (3) 中的堆栈跟踪,但在等待答案时不要屏住呼吸。充其量,失败的函数名称可能是提供给 Google 的一个很好的字符串。

于 2009-01-19T21:49:59.570 回答
0

我遇到了与段错误(11)类似的问题。在 ServerFault 上找到以下问题,该问题提供了升级作为解决方案。

正在运行旧版本的 Ubuntu 并遇到了段错误问题。Ado-release-upgrade将我的系统带到了 Ubuntu 11.10,问题神奇地消失了。

于 2012-03-06T15:07:28.503 回答