apache segment fault 에러입니다. 조언 부탁드립니다.

lattente의 이미지

안녕하세요.
Apache 운용중 에러로그에 줄기차게 segment fault 에러와 signal Bus error가 발생합니다.
실질적으로 웹서비스 이용중 클라이언트가 체감적으로 느끼는 장애는 없는 상태이구요.
거의 2~3분마다 에러를 뿌리고 있어서 확인을 위해 gdb를 이용해보았습니다만
출력되는 내용으로는 지식이 얕아서 잘 모르겠습니다. ㅠ
비슷한 게시물을 찾아보고자 꽤 뒤적거렸는데 관련 내용을 찾을 수 없어서 질문 올립니다.

사용 환경은
Fedora core 6 64bit, apache2.0.54, php5.1.2+gd2.0.34 입니다.
zend optimizer3.2.2 eaccelator0.9.5
사용 솔루션은 제로보드입니다.
밑으로 해당 특정 child process의 gdb출력정보입니다.
짧은 지식으로는 pthread 라이브러리에서 문제가 발생했다는 정도로 밖에 진전이 없네요 ㅠ
조언 부탁드립니다.

(gdb) attach 26378
Attaching to process 26378
Reading symbols from /usr/local/apache2/bin/httpd...done.
Using host libthread_db library "/lib64/libthread_db.so.1".
Reading symbols from /lib64/libm.so.6...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /usr/local/apache2/lib/libaprutil-1.so.0...done.
Loaded symbols for /usr/local/apache2/lib/libaprutil-1.so.0
Reading symbols from /usr/lib64/libsqlite3.so.0...done.
Loaded symbols for /usr/lib64/libsqlite3.so.0
Reading symbols from /lib64/libexpat.so.0...done.
Loaded symbols for /lib64/libexpat.so.0
Reading symbols from /usr/local/apache2/lib/libapr-1.so.0...done.
Loaded symbols for /usr/local/apache2/lib/libapr-1.so.0
Reading symbols from /lib64/libuuid.so.1...done.
Loaded symbols for /lib64/libuuid.so.1
Reading symbols from /lib64/librt.so.1...done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /lib64/libcrypt.so.1...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /lib64/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 46912502870432 (LWP 26378)]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libc.so.6...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libnss_files.so.2...done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /usr/local/apache2/modules/libphp5.so...done.
Loaded symbols for /usr/local/apache2/modules/libphp5.so
Reading symbols from /usr/local/gd/lib/libgd.so.2...done.
Loaded symbols for /usr/local/gd/lib/libgd.so.2
Reading symbols from /usr/local/freetype/lib/libfreetype.so.6...done.
Loaded symbols for /usr/local/freetype/lib/libfreetype.so.6
Reading symbols from /usr/lib64/libjpeg.so.62...done.
Loaded symbols for /usr/lib64/libjpeg.so.62
Reading symbols from /usr/lib64/libz.so.1...done.
Loaded symbols for /usr/lib64/libz.so.1
Reading symbols from /lib64/libresolv.so.2...done.
Loaded symbols for /lib64/libresolv.so.2
Reading symbols from /lib64/libnsl.so.1...done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /usr/lib64/libxml2.so.2...done.
Loaded symbols for /usr/lib64/libxml2.so.2
Reading symbols from /usr/local/mysql/lib/mysql/libmysqlclient.so.15...done.
Loaded symbols for /usr/local/mysql/lib/mysql/libmysqlclient.so.15
Reading symbols from /usr/local/apache2/modules/mod_url.so...done.
Loaded symbols for /usr/local/apache2/modules/mod_url.so
Reading symbols from /usr/local/apache2/modules/mod_expires.so...done.
Loaded symbols for /usr/local/apache2/modules/mod_expires.so
Reading symbols from /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so...done.
Loaded symbols for /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so
Reading symbols from /usr/local/Zend/lib/ZendExtensionManager.so...done.
Loaded symbols for /usr/local/Zend/lib/ZendExtensionManager.so
Reading symbols from /usr/local/Zend/lib/Optimizer-3.2.2/php-5.2.x/ZendOptimizer.so...done.
Loaded symbols for /usr/local/Zend/lib/Optimizer-3.2.2/php-5.2.x/ZendOptimizer.so
Reading symbols from /usr/lib64/gconv/EUC-KR.so...done.
Loaded symbols for /usr/lib64/gconv/EUC-KR.so
Reading symbols from /usr/lib64/gconv/libKSC.so...done.
Loaded symbols for /usr/lib64/gconv/libKSC.so
0x00002aaaaaf0bde0 in __accept_nocancel () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002aaaaaf0bde0 in __accept_nocancel () from /lib64/libpthread.so.0
#1 0x00002aaaaacf16f4 in apr_socket_accept (new=0x7fffde685cb8, sock=0x68f970, connection_context=0xa0c508)
at network_io/unix/sockets.c:187
#2 0x000000000045e23d in unixd_accept (accepted=0x7fffde685d10, lr=, ptrans=0xa0c6a8) at unixd.c:466
#3 0x000000000045cde2 in child_main (child_num_arg=) at prefork.c:621
#4 0x000000000045d104 in make_child (s=0x69a0c8, slot=238) at prefork.c:736
#5 0x000000000045d922 in ap_mpm_run (_pconf=, plog=, s=)
at prefork.c:871
#6 0x0000000000421571 in main (argc=3, argv=0x7fffde6860d8) at main.c:717

송효진의 이미지

붙여주신것은 정상적인 메세지 같은데요.
segfault 메세지도 붙여주세요.

아파치가 prefork 인지 worker 인지,
php 는 thread safe 인지 아닌지 등도 확인해보세요.

worker:thread safe 라면, php ext 중 쓰지 않는것을 빼 보세요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

송효진의 이미지

no-debug-non-zts-20060613 이걸 보니 아파치가 prefork 로 동작하나보네요.
그럼 쓰레드 문제는 아닌듯 한데...

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

송효진의 이미지

zend optimizer3.2.2, eaccelator0.9.5
두가지를 함께 써도 되는건가요?
둘중 하나를 빼 보세요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

lattente의 이미지

optimizer만 사용시에도 동일한 에러를 뿌리고 있습니다.
phpinfo 상에선 정상적으로 optimizer와 eaccelator가 로드되어있는 상태라-
optimizer의 경우 이전에도 항상 사용해오던터라 그때문은 아닌듯합니다.

vecter의 이미지

apache error log 를 먼저 보심이

lattente의 이미지

[Tue Aug 14 17:28:08 2007] [notice] child pid 21677 exit signal Segmentation fault (11)
[Tue Aug 14 17:28:31 2007] [notice] child pid 16897 exit signal Bus error (7)
[Tue Aug 14 17:29:00 2007] [notice] child pid 21673 exit signal Segmentation fault (11)
[Tue Aug 14 17:29:57 2007] [notice] child pid 20359 exit signal Bus error (7)
[Tue Aug 14 17:30:01 2007] [notice] child pid 9168 exit signal Bus error (7)
[Tue Aug 14 17:35:26 2007] [notice] child pid 9113 exit signal Bus error (7)

이렇게 계속해서 에러를 뿌려대고 있습니다 ㅠ 해당 pid로 추적해본것이 본문의 내용입니다.

김정균의 이미지

그냥 gdb 로 본다고 되는 것은 아니죠. segfault 발생시에 core dump 를 남기게 설정을 하고, 그 core file 을 gdb 로 보셔야 합니다. 다만 빌드시에 옵티마이저 옵션 (-O2 등..) 이 있고 strip 이 되어 있다면 제대로 보이지 않겠죠.

lattente의 이미지

core file 생성이 잘 되지 않더군요 ㅠ 이런경우 php에서가 아니라
아파치 core를 확인해야하는게 맞는지요?

사랑천사의 이미지

흐흠..

아무레도 아파치에서 여는 파일 중 일부(예를 들어 로그 파일이라던가..)가 열리지 않거나 경로 지정이 잘못 되엇거나. 저런 경우는 보통 그런 경우입니다.. 뭐, 잘 떴다가 돌아가다가 그런다면 그건 돌아 가는 프로그램들 간에 문제가 있는 것으로 보이는데 버젼을 올려 보신다거나 재컴파일 하신다거나 하시는 방법이 유력해 보입니다. 아니면 과도한 최적화(컴파일시 -O3, -fomit-frame-pointer 사용 등)를 하신 경우 문제가 될 소지가 잇따고 봅니다.(잘 안 그러긴 하는데... 그럴 대도 잇다는 거죠.
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
HomePage: http://lys.lecl.net:88/
Wiki(Read-Only): http://lys.lecl.net:88/wiki/
Blog: http://lys.lecl.net:88/blog
MSN: ysnglee2000@hotmail.com
----
절이 싫으면 중이 떠나는 것이 아니라, 절이 싫으면 중이 절을 부숴야 한다.
때때

사람천사

lattente의 이미지

말씀하신대로 내부적인 요인이 아니라 그냥 추가된 페이지라던가에서 생긴문제일 수 도 있겠다는 생각은 했었습니다. 간혹 devel버젼으로 업했을때 증상이 사라지셨다는 분들도 계시긴했는데
이유도 모르고 해결하는건 찜찜하기도 하고- 사실 devel버젼 설치시에 optimizer가 정상적으로
로드되지 않더군요 ㅠ 꼭 사용해야하는것이 있어서 안쓸수도 없고 말입니다.
천상 페이지라던가 기능적인 부분에서 수동으로 디버깅 해보는 수밖에 없을듯하네요 ㅠ
다시한번 답변 감사드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.