php log console
"[Aviso] child pid XXXX exit signal Error de segmentación(11)" en apache error.log (3)
¿Has intentado aumentar output_buffering en tu php.ini?
Estoy usando la pila Apache / PHP / MySQL.
Usando como marco CakePHP.
De vez en cuando me aparece una página en blanco. No puedo depurarlo a través de Cake, así que echo un vistazo al error de apache .log y esto es lo que obtengo:
[Wed Oct 12 15:27:23 2011] [notice] child pid 3580 exit signal Segmentation fault (11)
[Wed Oct 12 15:27:34 2011] [notice] child pid 3581 exit signal Segmentation fault (11)
[Wed Oct 12 15:30:52 2011] [notice] child pid 3549 exit signal Segmentation fault (11)
[Wed Oct 12 16:04:27 2011] [notice] child pid 3579 exit signal Segmentation fault (11)
zend_mm_heap corrupted
[Wed Oct 12 16:26:24 2011] [notice] child pid 3625 exit signal Segmentation fault (11)
[Wed Oct 12 17:57:24 2011] [notice] child pid 3577 exit signal Segmentation fault (11)
[Wed Oct 12 17:58:54 2011] [notice] child pid 3550 exit signal Segmentation fault (11)
[Wed Oct 12 17:59:52 2011] [notice] child pid 3578 exit signal Segmentation fault (11)
[Wed Oct 12 18:01:38 2011] [notice] child pid 3683 exit signal Segmentation fault (11)
[Wed Oct 12 22:20:53 2011] [notice] child pid 3778 exit signal Segmentation fault (11)
[Wed Oct 12 22:29:51 2011] [notice] child pid 3777 exit signal Segmentation fault (11)
[Wed Oct 12 22:33:42 2011] [notice] child pid 3774 exit signal Segmentation fault (11)
¿Qué es esta falla de segmentación y cómo puedo solucionarlo?
ACTUALIZAR:
PHP Version 5.3.4, OSX local development
Server version: Apache/2.2.17 (Unix)
CakePhp: 1.3.10
Adjunte gdb a uno de los procesos secundarios de httpd y vuelva a cargar o continúe trabajando y espere a que se produzca un bloqueo y luego observe la ruta de retroceso. Haz algo como esto:
$ ps -ef|grep httpd
0 681 1 0 10:38pm ?? 0:00.45 /Applications/MAMP/Library/bin/httpd -k start
501 690 681 0 10:38pm ?? 0:00.02 /Applications/MAMP/Library/bin/httpd -k start
...
Ahora adjunte gdb a uno de los procesos hijos, en este caso PID 690 (las columnas son UID, PID, PPID, ...)
$ sudo gdb
(gdb) attach 690
Attaching to process 690.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ....................... done
0x9568ce29 in accept$NOCANCEL$UNIX2003 ()
(gdb) c
Continuing.
Espere por accidente ... entonces:
(gdb) backtrace
O
(gdb) backtrace full
Debería darte alguna pista de lo que está pasando. Si presenta un informe de error, debe incluir la traza inversa.
Si el bloqueo es difícil de reproducir, puede ser una buena idea configurar Apache para que solo use un proceso secundario para manejar las solicitudes. La configuración es algo como esto:
StartServers 1
MinSpareServers 1
MaxSpareServers 1
Una falla de segementación es un error interno en php (o, menos probable, apache). A menudo, la falla de segmentación es causada por uno de los módulos php más nuevos y menos probados, como imagemagick o subversion.
Intente deshabilitar todos los módulos no esenciales (en php.ini
), y luego vuelva a habilitarlos uno a uno hasta que ocurra el error. Es posible que también desee actualizar php y apache.
Si eso no ayuda, deberías informar un error de php .