Web Servers
[장애 사례] Apache child pid exit signal Segmentation fault (11)
midworker
2025. 5. 15. 22:25
반응형
[장애 사례] Apache child pid exit signal Segmentation fault (11)
Apache HTTP Server 운영 중 다음과 같은 치명적인 에러 로그가 발생했다면?
✅ 에러 메시지
[core:notice] AH00052: child pid 214988 exit signal Segmentation fault (11)
✅ Segmentation fault란?
- 프로세스가 잘못된 메모리 주소를 접근했을 때 발생하는 치명적인 오류
- 리눅스에서는 시그널 11(SIGSEGV) 로 표현되며, 프로세스는 즉시 종료됨
✅ 주요 발생 원인
유형 | 설명 |
---|---|
Apache 모듈 충돌 | mod_jk, mod_php, mod_security 등의 외부 모듈에서 메모리 오류 |
PHP 확장 오류 | PHP 모듈 또는 라이브러리 버그로 인한 비정상 종료 |
3rd-party 모듈 | 외부 소스 컴파일된 .so 모듈의 불안정 |
시스템 라이브러리 충돌 | glibc, OpenSSL, APR 등의 버전 문제 |
리소스 고갈 후 부정확한 해제 | 가용 메모리 부족 상태에서 잘못된 해제 동작 발생 |
✅ 진단 방법
1. 에러 발생 시점 확인
- Apache 에러 로그
/var/log/httpd/error_log
또는/var/log/apache2/error.log
[core:notice] AH00052: child pid XXXXX exit signal Segmentation fault (11)
2. core dump 활성화 (재현 시 분석 가능)
ulimit -c unlimited
Apache 환경 설정 (httpd.conf
또는 /etc/sysconfig/httpd
):
CoreDumpDirectory /tmp/apache-dump
→ 재현 시 /tmp/apache-dump/core.*
생성
3. gdb로 분석
gdb /usr/sbin/httpd /tmp/apache-dump/core.xxxxxx
→ bt
명령으로 백트레이스 확인
✅ 해결 방안
✔ 1. mod_xxx 모듈 제거 또는 교체
- 최근 추가/변경한 모듈 주의
LoadModule
설정에서 주석 처리 후 재기동
# LoadModule security2_module modules/mod_security2.so
✔ 2. PHP/라이브러리 업그레이드
php-fpm
또는 mod_php 연동 시 segfault 자주 발생함php -v
로 버전 확인 후 최신 패치 적용
✔ 3. Apache 및 시스템 패키지 점검
httpd -v
ldd /usr/sbin/httpd
- 의존성 라이브러리와의 충돌 여부 확인
✅ 마무리
Apache의 Segmentation fault
오류는 일반적인 오류가 아닌 메모리 손상 또는 내부 모듈 충돌의 결과입니다.
다음과 같은 단계로 대응하세요:
- 최근 추가한 모듈 제거 또는 주석 처리
- core dump 수집 및 gdb 분석
- 시스템 패키지 및 모듈 호환성 점검
- 불가피한 경우 재컴파일 또는 최신 패치 적용
추천 태그
Apache, SegmentationFault, SIGSEGV, AH00052, child pid crash, mod_jk, core dump, httpd 장애, 서버 비정상종료, 메모리오류
반응형