Finalmente consertamos isso. Um simples reinício do servidor interrompeu as falhas seg.
Obrigado pelas suas respostas. Tenho certeza de que será útil para diagnosticar problemas futuros.
Nathan.
Eu tenho isso no meu erro error.log:
[sex set 18 08:10:54 2009] [notice] pid 9178 sinal de saída falha de segmentação (11)
[Sex 18 set 08:11:41 2009] [notice] criança pid 9187 sinal de saída falha de segmentação (11)
[Sex set 18 08:12:12 2009] [notice] criança pid 9204 sinal de saída falha de segmentação (11)
[Sex 18 set 08:12:13 2009] [notice] criança pid 9202 sinal de saída Falha de segmentação (11)
[Sex Sep 18 08:14:45 2009] [aviso] criança pid 9251 sinal de saída Falha de segmentação (11)
Começou no mesmo dia em que fiz uma adição ao arquivo vhost.conf. Então eu reverti de volta para o arquivo original fez uma reinicialização apache2ctl. Infelizmente ainda está ocorrendo.
O Apache parece estar servindo as páginas OK.
Alguma idéia?
Felicidades,
Nathan.
Nathan, tente parar o Apache e iniciá-lo no forground (debug, não-threaded), que pode vazar mais pistas sobre o que está tornando-o um segfault.
Dito isto, ele não deve se separar, então é um bug, mas pode ser algo que você consiga corrigir se souber o que está causando isso.
apache2 -X
Além disso (é improvável que você revele toda a razão para este problema), quaisquer avisos / erros de ...
apache2ctl -t
...?
Finalmente, são todos os módulos que você carregou no Apache "Certified", talvez você possa comentar cerca de metade deles e ver se o problema desaparece ou não, e continuar com uma pesquisa binária de dividir e conquistar lá.
Você também pode procurar por algum dump principal produzido a partir do segfault, talvez em / tmp? Se você encontrar algum, tente executá-lo através do gdb ...
gdb apache2 -c /tmp/core.<pid>
Sig11 geralmente ocorre apenas por uma das duas razões:
Programas ruins.
No caso do Apache, é estatisticamente improvável que seja um bug no código principal do Apache.
É muito mais comum ser uma falha de um módulo. Ou da maneira que um módulo lida com segurança com exceções no código ou bibliotecas que está processando. Ou a maneira como ele interage com o modelo de MPM escolhido pelo Apache. Quando um módulo se comporta mal desta maneira, ele sai descontroladamente antes de retornar os dados para o processo filho do Apache e, assim, produz o segfault.
Revise todas as alterações feitas desde a última vez que ele funcionou. Como Lee B diz, este é o exemplo perfeito para usar o controle de versão.
Para complicar um pouco as coisas, muitas vezes você pode produzir o mesmo comportamento emitindo um graceful
em vez de uma reinicialização completa depois de fazer alterações na configuração do módulo do Apache. Você pode descartar isso parando e iniciando o Apache.
Hardware defeituoso
Se você tem certeza de que os erros coincidem com a sua alteração de configuração e você não está vendo nenhum outro efeito negativo no sistema, provavelmente pode descartá-lo. Mas pode valer a pena ter em mente se você ficar sem outros caminhos. CPUs e RAM são os culpados típicos.
Suponho que poderia ser um módulo carregado com um problema.
Eu experimentei o mesmo comportamento com PHP e extensão gettext php, ele estava travando PHP e, portanto, o filho do apache atendendo a requisição.
Depois de passar horas tentando descobrir a causa do meu erro de falha de segmentação, comecei a desabilitar aleatoriamente as coisas. No meu caso, a causa do erro foi o acelerador do Zend.
Como não preciso dessa extensão, estou deixando-a desativada. Se você está tendo o mesmo problema e precisa dessa extensão, você pode tentar excluir o cache do eacelerator e reiniciar o httpd.
da próxima vez você pode tentar usar strace ou treliça
Tags apache-2.2