Problemas de segmentación de memoria con Apache

Problemas de segmentación de memoria con Apache

Continuamente se encuentra usted con el siguiente mensaje dentro de sus logs de Apache:

Ejemplo:

[Tue Aug XX YY:ZZ:WW 2010] [notice] child pid 24968 exit signal Segmentation fault (11)

La respuesta a esta interrogante, es que posiblemente algún modulo esta ocasionando problema, la solución de muchos es empezar a deshabilitar módulos hasta que den con cual es el que produce estas excepciones de memoria, pero esta solución es como matar un mosquito con un yunke, en realidad se esta adivinando cual es el problema y no buscando la raiz de lo que causa dicha segmentación.

Lo idóneo en realidad es decirle al Apache que realice volcados de memoria en un directorio por ejemplo /tmp (NOTA: Este directorio donde se vaya a realizar el volcado debe tener espacio por que si no lo pueden llenar sin darse cuenta)

Como hacemos esto, dentro del archivo de configuración de APACHE agregamos la siguiente linea:

CoreDumpDirectory /tmp

hacemos un reload de nuestro servicio en el caso de las distribuciones basadas en Red Hat se hace de la siguiente manera:

service httpd reload

cuando empiezan las excepciones de memoria comenzaremos a ver dentro de nuestros logs lo siguiente:

[Tue Aug 31 03:18:58 2010] [notice] child pid 24968 exit signal Segmentation fault (11), possible coredump in /tmp

Necesitamos tener instalado el gdb dentro de nuestro equipo, si no esta instalado podemos

yum install gdb

Ya con el gdb instalado buscamos revisar este dumpcore de memoria para averiguar que produce este problema (NOTA: solo colocare la parte de info del problema)

[[email protected] tmp]# gdb /usr/sbin/httpd core.24681
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5_5.2)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type «show copying»
and «show warranty» for details.
This GDB was configured as «x86_64-redhat-linux-gnu».
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>…
Reading symbols from /usr/sbin/httpd…(no debugging symbols found)…done.
Reading symbols from /lib64/libm.so.6…(no debugging symbols found)…done.
Loaded symbols for /lib64/libnss_dns.so.2
Core was generated by `/usr/sbin/httpd’.

Program terminated with signal 11, Segmentation fault.
#0  0x00002b1281fcb9c9 in _efree () from /etc/httpd/modules/libphp5.so

Aqui el volcado de memoria nos informa quien causa la falla, en este caso el modulo de PHP, en este caso en particular es raro ver que PHP sea la causa del problema, normalmente estos módulos vienen precopilados por el fabricante de la distro y es raro ver problemas aqui, la siguiente pregunta que nos debemos hacer, ¿ tiene PHP algún otro modulo asociado que pudiera causar algun conflicto ?, en este caso en particular tengo XCache y ionCube, asi que de aqui solo resta revisar las configuraciones propias de cada modulo y listo ya no mas excepciones de memoria en mi Apache.

2 pensamientos sobre “Problemas de segmentación de memoria con Apache

  1. Pingback: Tweets that mention Problemas de segmentación de memoria con Apache | eidast.me - tecnología en web 2.0 -- Topsy.com

  2. Pingback: Eidast

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *