programing tip

아파치 error.log의 "[알림] 자식 pid XXXX 종료 신호 분할 오류 (11)"

itbloger 2020. 8. 29. 09:35
반응형

아파치 error.log의 "[알림] 자식 pid XXXX 종료 신호 분할 오류 (11)"


Apache / PHP / MySQL 스택을 사용하고 있습니다.
프레임 워크 CakePHP로 사용.

때때로 나는 빈 흰색 페이지를 얻습니다. Cake를 통해 디버깅 할 수 없으므로 apache error.log를 살펴보면 다음과 같은 결과를 얻을 수 있습니다.

[Wed Oct 12 15:27:23 2011] [notice] child pid 3580 exit signal Segmentation fault (11)
[Wed Oct 12 15:27:34 2011] [notice] child pid 3581 exit signal Segmentation fault (11)
[Wed Oct 12 15:30:52 2011] [notice] child pid 3549 exit signal Segmentation fault (11)
[Wed Oct 12 16:04:27 2011] [notice] child pid 3579 exit signal Segmentation fault (11)
zend_mm_heap corrupted
[Wed Oct 12 16:26:24 2011] [notice] child pid 3625 exit signal Segmentation fault (11)
[Wed Oct 12 17:57:24 2011] [notice] child pid 3577 exit signal Segmentation fault (11)
[Wed Oct 12 17:58:54 2011] [notice] child pid 3550 exit signal Segmentation fault (11)
[Wed Oct 12 17:59:52 2011] [notice] child pid 3578 exit signal Segmentation fault (11)
[Wed Oct 12 18:01:38 2011] [notice] child pid 3683 exit signal Segmentation fault (11)
[Wed Oct 12 22:20:53 2011] [notice] child pid 3778 exit signal Segmentation fault (11)
[Wed Oct 12 22:29:51 2011] [notice] child pid 3777 exit signal Segmentation fault (11)
[Wed Oct 12 22:33:42 2011] [notice] child pid 3774 exit signal Segmentation fault (11)

이 세분화 오류는 무엇이며 어떻게 해결할 수 있습니까?

최신 정보:

PHP Version 5.3.4, OSX local development
Server version: Apache/2.2.17 (Unix)
CakePhp: 1.3.10

httpd 하위 프로세스 중 하나에 gdb를 연결하고 다시로드하거나 작업을 계속하고 충돌을 기다린 다음 역 추적을 확인합니다. 다음과 같이하십시오.

$ 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

segementation 오류는 PHP (또는 아파치)의 내부 오류입니다. 종종 세분화 오류는 imagemagick 또는 subversion과 같이 새롭고 덜 테스트 된 PHP 모듈 중 하나에 의해 발생합니다.

필수가 아닌 모든 모듈 ( php.ini)을 비활성화 한 다음 오류가 발생할 때까지 하나씩 다시 활성화하십시오. PHP와 Apache를 업데이트 할 수도 있습니다.

그래도 도움이되지 않으면 PHP 버그를보고 해야합니다 .


php.ini에서 output_buffering을 늘리려 고 했습니까?

"zend_mm_heap broken"은 무엇을 의미 합니까?

참고URL : https://stackoverflow.com/questions/7745578/notice-child-pid-xxxx-exit-signal-segmentation-fault-11-in-apache-error-lo

반응형