“[通知]子进程 pid XXXX 退出信号分段错误 (11)”在apache错误日志中

发布于 2024-12-09 15:46:08 字数 1459 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

删除会话 2024-12-16 15:46:08

将 gdb 连接到 httpd 子进程之一并重新加载或继续工作并等待崩溃,然后查看回溯。做这样的事情:

$ ps -ef|grep httpd
0     681     1   0 10:38pm ??         0:00.45 /Applications/MAMP/Library/bin/httpd -k start
501   690   681   0 10:38pm ??         0:00.02 /Applications/MAMP/Library/bin/httpd -k start

...

现在将 gdb 附加到一个子进程,在本例中 PID 690(列是 UID、PID、PPID,...)

$ sudo gdb
(gdb) attach 690
Attaching to process 690.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ....................... done
0x9568ce29 in accept$NOCANCEL$UNIX2003 ()
(gdb) c
Continuing.

等待崩溃...然后:

(gdb) backtrace

或者

(gdb) backtrace full

应该给你一些线索这是怎么回事。如果您提交错误报告,您应该包含回溯。

如果崩溃很难重现,那么将 Apache 配置为仅使用一个子进程来处理请求可能是一个好主意。配置是这样的:

StartServers 1
MinSpareServers 1
MaxSpareServers 1

Attach gdb to one of the httpd child processes and reload or continue working and wait for a crash and then look at the backtrace. Do something like this:

$ ps -ef|grep httpd
0     681     1   0 10:38pm ??         0:00.45 /Applications/MAMP/Library/bin/httpd -k start
501   690   681   0 10:38pm ??         0:00.02 /Applications/MAMP/Library/bin/httpd -k start

...

Now attach gdb to one of the child processes, in this case PID 690 (columns are UID, PID, PPID, ...)

$ sudo gdb
(gdb) attach 690
Attaching to process 690.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ....................... done
0x9568ce29 in accept$NOCANCEL$UNIX2003 ()
(gdb) c
Continuing.

Wait for crash... then:

(gdb) backtrace

Or

(gdb) backtrace full

Should give you some clue what's going on. If you file a bug report you should include the backtrace.

If the crash is hard to reproduce it may be a good idea to configure Apache to only use one child processes for handling requests. The config is something like this:

StartServers 1
MinSpareServers 1
MaxSpareServers 1
ぃ双果 2024-12-16 15:46:08

分段错误是 php(或者不太可能是 apache)中的内部错误。通常,分段错误是由较新且测试较少的 php 模块之一引起的,例如 imagemagick 或 subversion。

尝试禁用所有非必需模块(在 php.ini 中),然后一一重新启用它们,直到出现错误。您可能还想更新 php 和 apache。

如果这没有帮助,您应该报告 php 错误

A segementation fault is an internal error in php (or, less likely, apache). Oftentimes, the segmentation fault is caused by one of the newer and lesser-tested php modules such as imagemagick or subversion.

Try disabling all non-essential modules (in php.ini), and then re-enabling them one-by-one until the error occurs. You may also want to update php and apache.

If that doesn't help, you should report a php bug.

一世旳自豪 2024-12-16 15:46:08

您是否尝试过在 php.ini 中增加 output_buffering ?

“zend_mm_heap 损坏”是什么意思

Have you tried to increase output_buffering in your php.ini?

What does "zend_mm_heap corrupted" mean?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文