It happens randomly, and only on moodle installations. Apache don't add a line in the logs when this happens, and I don't know where to look.
koke@escher:~/Code/eboxhq/moodle[master]$ curl -I http://training.ebox-technologies.com/login/signup.php?course=WNA001
curl: (52) Empty reply from server
koke@escher:~/Code/eboxhq/moodle[master]$ curl -I http://training.ebox-technologies.com/login/signup.php?course=WNA001
HTTP/1.1 200 OK
The apache conf is quite straightforward and works perfectly in the other vhosts
<VirtualHost *:80>
ServerAdmin webmaster@ebox-technologies.com
DocumentRoot /srv/apache/training.ebox-technologies.com/htdocs
ServerName training.eboxhq.com
ErrorLog /var/log/apache2/training.ebox-technologies.com-error.log
CustomLog /var/log/apache2/training.ebox-technologies.com-access.log combined
<FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
ExpiresActive On
ExpiresDefault "access plus 1 week"
Header add Cache-Control public
</FilesMatch>
</VirtualHost>
Using apache 2.2.9 php 5.2.6 and moodle 1.9.5+ (Build: 20090722)
Any ideas welcome :)
-
Is there nothing in error_log either?
You could set MaxServers to 1, and then strace that apache thread while requesting the page. It could be that PHP is segfaulting, or the apache child is dying for other reasons.
Also, tcpdump the request at both ends to see what data is being sent on the wire.
From Tom O'Connor -
Look at the main server error log, it should have some Child Segfault Error (11).
This is probably given by a PHP engine fault, often given by a buggy php module, unicode chars handling, gettext corrupted DB, and so on.
It is very difficult to debug.
You can enable xdebug tracing and look at what line it is segfaulting:
pecl install xdebug
php.ini:
[xdebug] xdebug.profiler_enable=1 xdebug.profiler_output_dir="/tmp/xdebug" xdebug.auto_trace=1 ; enable tracing xdebug.trace_format=0 xdebug.show_mem_delta=1 ; memory difference xdebug.show_local_vars=1 xdebug.max_nesting_level=100
Jorge Bernal : Found this on error log: zend_mm_heap corrupted [Fri Sep 18 16:47:08 2009] [notice] child pid 7361 exit signal Segmentation fault (11) [Fri Sep 18 16:47:09 2009] [notice] child pid 7368 exit signal Segmentation fault (11) [Fri Sep 18 16:47:10 2009] [notice] child pid 7375 exit signal Segmentation fault (11) Will try xdebug and see if it helpsJorge Bernal : Only see the segmentation fault and xdebug is not leaving anything useful in /tmp/xdebugAlberT : it should print a trace of _every_ php function called. So when the trace stops is when the segfault happened. This should suffice to argue what php function is faulting.From AlberT -
Finally solved by adding to
/etc/apache2/envvars
:export USE_ZEND_ALLOC=0
From Jorge Bernal -
Finally solved by adding to /etc/apache2/envvars:
export USE_ZEND_ALLOC=0
followe dur steps... Now my webmail works again!
thanks!
From dave yazz
0 comments:
Post a Comment