Falha de segmentação do Apache após logrotation no debian squeeze

3

Todo domingo à noite durante o logrotation do debian squeeze, o apache falha quando o pós -ogrogamento tenta recarregar a configuração e / ou reinicia o apache. Eu até tentei reconfigurar o logrotation reiniciando duro (pare de iniciar) o serviço, com as mesmas falhas.

O que é feliz é que o apache parece estar começando bem, mas todo pedido lança o seguinte erro nos apaches error.log:

[notice] child pid xxxx exit signal Segmentation fault (11)

Se eu reiniciar o apache manualmente mais uma vez, ele funcionará bem novamente. Alguém tem alguma idéia do porquê isso está acontecendo?

A instância do AWS está executando o debian squeeze, o apache 2.2.16, o php 5.4.32 e o verniz 3 (se isso for importante).

Qualquer sugestão é muito bem vinda. Se houver informações relevantes que eu perdi, diga-me!

UPDATE: Mudei os sites do Magento para outro servidor, e o problema parou de ocorrer (embora ainda existam alguns outros sites), e isso não aconteceu no novo servidor. Ainda há poucas ideias sobre o que causou isso.

    
por Harald 27.10.2015 / 09:31

2 respostas

3

Pode haver diferentes razões para tal falha e, em vez disso, assumindo algo, sugiro que você reserve um pouco de tempo para depurar o script logrotate e fazer um corubo do apache para analisar o problema com gdb .

Você pode executar manualmente o script logrotate no modo detalhado como este (-v verbose, -f force):

logrotate -vf /etc/logrotate.d/apache2 

Para criar um cordump e analisá-lo com o gdb, você pode instalar todos os pacotes necessários usando o apt-get e não é muito difícil de configurar.

Instale os arquivos de símbolo gdb e necessyry ::

apt-get install gdb 
apt-get install apache2-dbg php5-dbg

Defina CoreDumpDirectory na configuração do apache:

CoreDumpDirectory /tmp/apache2-coredump

Defina ulimit como ilimitado:

ulimit -c unlimited

Você pode ler o coredump com o gdb assim:

gdb apache2 -core /tmp/apache2-coredump/core

Aqui está um tutorial detalhado: Como descobrir o que está causando uma falha de segmentação do Apache

    
por 09.12.2015 / 11:30
2

Altere o método de rotação usando rotatelogs na sua configuração do apache:

 CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common 

rotatelogs irão fazer a rotação do log, então não é mais necessário graciosos.

Você cron só precisa compactar logs antigos.

A documentação: link

PS: Eu sei que isso não explica por que você tem falha de segmentação, mas com esse método você não terá mais graça durante a rotação.

    
por 09.12.2015 / 10:19