apache error.log의 "notice" child pid XXXX 종료 신호 Segmentation fault (11)"
Apache/PHP/MySQL 스택을 사용하고 있습니다.
Cake PHP를 프레임워크로 사용.
가끔 흰 페이지가 나옵니다.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
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
세그멘테이션 장애는 php(또는 Apache)의 내부 오류입니다.종종 분할 장애는 imagemagick이나 subversion과 같은 더 새롭고 덜 테스트된 php 모듈 중 하나에 의해 발생합니다.
필요하지 않은 모듈을 모두 비활성화해 보십시오(에서).php.ini
에러가 발생할 때까지, 1개씩 재인스톨 합니다.php와 apache를 업데이트 할 수도 있습니다.
그래도 문제가 해결되지 않으면 php 버그를 보고해야 합니다.
php.ini에서 output_buffering을 증가시켜 본 적이 있습니까?
"zend_mm_heap corrupted"는 무슨 뜻입니까?
언급URL : https://stackoverflow.com/questions/7745578/notice-child-pid-xxxx-exit-signal-segmentation-fault-11-in-apache-error-lo
'programing' 카테고리의 다른 글
PHP: 문자열의 공백을 %20으로 변환하시겠습니까? (0) | 2022.09.14 |
---|---|
함수 내부의 정적 변수와 동등한 Python은 무엇입니까? (0) | 2022.09.14 |
Composer를 사용하여 특정 버전의 패키지를 설치하는 방법 (0) | 2022.09.14 |
Http를 사용하여 응답 본문을 가져오는 방법URL 연결, 2xx 이외의 코드가 반환될 때? (0) | 2022.09.14 |
'str' 개체가 품목 할당을 지원하지 않습니다. (0) | 2022.09.14 |