Mar*_*555 6 process segmentation-fault strace apache-httpd
从debian lenny 升级到squeeze(apache2 2.2.16-6+squeeze4 和php 5.3.10-1~dotdeb.1)后,我的apache 进程开始因分段错误退出。它每 5-30 分钟发生一次(对于 1 个进程),因此它现在不会产生任何影响。问题是,有时不是用 退出SIGSEGV,而是发疯并以 100% 的系统 CPU 使用率SIGBUS错误地循环:
# strace -p27635 附加进程 27635 - 中断退出 --- SIGBUS(总线错误)@ 0 (0) --- --- SIGBUS(总线错误)@ 0 (0) --- --- SIGBUS(总线错误)@ 0 (0) --- --- SIGBUS(总线错误)@ 0 (0) --- --- SIGBUS(总线错误)@ 0 (0) --- --- SIGBUS(总线错误)@ 0 (0) ---
他们不回应kill -9。但是当我在杀死它后在进程上运行 strace 时,它只是重复SIGBUS两次然后退出。
# strace -p27635 附加进程 27635 - 中断退出 --- SIGBUS(总线错误)@ 0 (0) --- --- SIGBUS(总线错误)@ 0 (0) --- +++ 被 SIGKILL 杀死 +++
为什么在没有 strace 的情况下这个进程是不可杀死的?运行strace如何影响它可以退出的进程?
(我知道我的 apache/php 模块设置可能有问题,但在这个问题中,我对不可终止进程的奇怪行为感兴趣。如果我无法修复 apache/php,我会问另一个问题。 )
首先,检查你的内存。
\n\n不响应 SIGKILL 的进程是内核错误或硬件错误的症状。如果您不只是更改内核,最有可能的原因是您的 RAM 出现故障,因此请检查它。内核错误可能有微妙的原因(例如使用错误版本的 gcc),并以微妙的方式表现出来(例如工作正常,除了 X 服务器无法启动\xe2\x80\x94 相同的真实故事)。如果您使用的是许多其他用户正在使用的发行版提供的内核,那么您的新内核不太可能有错误,但它可能会发生 \xe2\x80\x94 可能是由驱动程序组合触发的罕见错误和活动模式。尝试另一个内核。
\n\nApache 中也可能存在导致其崩溃的错误,但如果 SIGKILL 不起作用,那不是 Apache 的错。
\n