【问题标题】:CoreDumpDirectory isn't working on ubuntu; getting segmentation fault in apache2 error logCoreDumpDirectory 不适用于 ubuntu;在 apache2 错误日志中出现分段错误
【发布时间】:2011-04-29 14:14:01
【问题描述】:

我无法在 ubuntu 10.10 上的 CoreDumpDirectory 中记录 apache2 崩溃。我正在使用带有 mod_wsgi 的 Django 1.2.3 和 apache2。我按照this 问题中列出的步骤进行操作,但无济于事。我添加了 - CoreDumpDirectory /var/cache/apache2/
在 apache2.conf 文件的末尾,然后在执行之后 'ulimit -c unlimited',重启了apache服务器。然后我复制了导致 apache 错误日志显示的条件-“child pid 27288 exit signal Segmentation fault (11)”,但没有提到在 CoreDumpDirectory 中崩溃的 apache2 日志记录,并且 /var/cache/apache2 中也没有任何内容。

编辑:

我能够解决这个问题。问题在于 PyLucene 环境在运行时被初始化。每次请求到来时我都在执行 initvm() 调用,这会导致分段错误。 This link 指示我应该在 .wsgi 文件中执行此操作,并且在执行此操作后没有分段错误。

【问题讨论】:

  • 这个问题与编程有关吗?
  • 我不确定是我的程序出错还是某些已安装软件包出错。在 ubuntu 上安装 apport 后,我看到类似 - child pid 32016 exit signal Segmentation fault (11), possible coredump in /var/cache/apache2 的错误,但 /var/cache/apache2 目录中没有任何内容。
  • 具体来说,我有一个网址,当我连续点击刷新时,浏览器显示“服务器返回一个空响应”,当我查看 apache 错误日志时,我看到了这个错误 - child pid 32016 exit signal Segmentation fault (11), possible coredump in /var/cache/apache2 我读到当您在 apache2.conf 中提到 CoreDumpDirectory 时,文件中报告了分段错误,我确实这样做了。但我没有看到在 /var/cache/apache2 中生成任何关于分段错误的文件。

标签: python django ubuntu apache2 mod-wsgi


【解决方案1】:

我也遇到过这个mod_wsgi子不转核的问题。长话短说:您需要编辑/etc/sysctl.conf 并设置fs.suid_dumpable=2

长篇大论:

Linux 防止以 root 身份启动然后放弃特权的进程转储核心。 (这是一项安全功能,因此 SUID 可执行文件不会将其内存泄露给用户)。设置 suid_dumpable=2 意味着核心文件将由 root 拥有,因此也不存在直接的安全问题。

为什么这会影响 mod_wsgi?显然 mod_wsgi 的子进程是从 Apache 的主进程中分离出来的。 Apache 通常以 root 身份启动,因为它需要绑定特权端口号,例如 80,然后丢弃特权。

(原始错误报告:https://code.google.com/p/modwsgi/issues/detail?id=247

【讨论】:

  • 引用那张票 """所以我阅读了 core(5) 手册页,结果我必须设置 sysctl 'fs.suid_dumpable=2',这最终给了我核心文件!所以事实证明这不是 mod_wsgi 错误,而是 Apache 以 root 身份启动和 mod_wsgi 启动其守护进程的方式的意外副作用。"""
  • @GrahamDumpleton:谢谢,我打算重写我的 SO 响应,但还没有开始。我现在已经更新了。
【解决方案2】:

我能够解决这个问题。问题在于 PyLucene 环境在运行时被初始化。每次请求到来时我都在执行 initvm() 调用,这会导致分段错误。 This link 指示我应该在 .wsgi 文件中执行此操作,并且在执行此操作后没有分段错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 2018-11-02
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多