Apache Seg falha (11)

8

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.

    
por Nathan Friend 18.09.2009 / 10:11

6 respostas

2

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.

    
por 29.10.2009 / 15:15
5

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>
    
por 18.09.2009 / 10:16
5

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.

por 04.10.2009 / 13:02
1

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.

    
por 18.09.2009 / 12:27
1

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.

    
por 29.10.2009 / 22:48
1

da próxima vez você pode tentar usar strace ou treliça

por 30.10.2009 / 02:37

Tags