0

I'm seeing the following error in apache's error_log. It's completely random but when it happens, it prints 10-20 lines in error_log.

Apache: [core:notice] [pid ***] AH00052: child pid *** exit signal Segmentation fault (11)

I'm running Apache 2.4.12 and PHP 5.4.36.

I tried to use gdb 7.8 to gather more information. After attaching to an apache's process, I waited and finally got a segmentation fault:

(gdb) attach 205907
Attaching to process 205907
Reading symbols from /usr/local/apache2/bin/httpd...done.
Reading symbols from /lib64/libpcre.so.0...(no debugging symbols found)...done.

... lots of reading symbols ...

(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x00007f7508acc4fe in __longjmp () from /lib64/libc.so.6
(gdb) backtrace
#0  0x00007f7508acc4fe in __longjmp () from /lib64/libc.so.6
#1  0xb7e28fbf1b781194 in ?? ()
Backtrace stopped: Cannot access memory at address 0xdf5a8fbf24c295cc
(gdb) backtrace full
#0  0x00007f7508acc4fe in __longjmp () from /lib64/libc.so.6
No symbol table info available.
#1  0xb7e28fbf1b781194 in ?? ()
No symbol table info available.
Backtrace stopped: Cannot access memory at address 0xdf5a8fbf24c295cc

Unfortunately the output is not what I expected. What should I do in order to get more information from the segmentation fault?

Fernando
  • 1,189
  • 6
  • 23
  • 32
  • try to enable your server core or if your process is running you can save the core with gcore command http://httpd.apache.org/dev/debugging.html – c4f4t0r Feb 16 '15 at 14:29

2 Answers2

1

Since you are having sig11 inside libc, and since it's not likely for it to have such easy triggering bug, I'd suggest you use a memtest86+ to test your server's memory.

drookie
  • 8,625
  • 1
  • 19
  • 29
  • Worth checking, although its more likely to be a memory management bug. If memtest comes up clean, my next step would be checking all the packages are up to date, consider regressing if they are. – symcbean Mar 06 '15 at 23:45
0

You need the debug version of libc and probably for /lib64/libpcre.so.0... From you output:

/lib64/libpcre.so.0...(no debugging symbols found)

I hope, that this post can be usefull for you:

How to use debug version of libc

[https://stackoverflow.com/questions/10000335/how-to-use-debug-version-of-libc]

Puzzle
  • 1