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 오류는 일반적인 오류가 아닌 메모리 손상 또는 내부 모듈 충돌의 결과입니다.
다음과 같은 단계로 대응하세요:

  1. 최근 추가한 모듈 제거 또는 주석 처리
  2. core dump 수집 및 gdb 분석
  3. 시스템 패키지 및 모듈 호환성 점검
  4. 불가피한 경우 재컴파일 또는 최신 패치 적용

추천 태그

Apache, SegmentationFault, SIGSEGV, AH00052, child pid crash, mod_jk, core dump, httpd 장애, 서버 비정상종료, 메모리오류

반응형