Pesquisar este blog

segunda-feira, 11 de fevereiro de 2008

Um estranho novo (?) erro no Apache...

Um post rápido sobre um erro recorrente no cPanel com o novo apache (o apache do cPanel é um apache "modificado" na distribuição feita na própria instalação do cPanel - o que os gurus do LINUX chamam de versão "patched").

Este estranho erro passou a ocorrer no Apache 2.0.X (não testei ainda na versão 2.2 e superiores derivadas) e trata sobre o uso de memória aliado a espaço em disco no sistema, derrubando o apache por completo e nem adianta dar restart, não restarta nada (não precisa dizer que dor de cabeça é isso para uma empresa de hospedagem que se preze) Verificando os logs de erro do apache em /etc/http/log:
[emerg] (28)No space left on device: Couldn't create accept lock
ou então
[crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed
Apesar do erro confuso existe espaço de sobra em todas as partições do servidor (neste caso ele reclama que não tem espaço no próprio /etc/http/log). A única solução era o reboot do servidor físico mesmo.

Atenção: estes comandos abaixo não executam nada de perigoso no seu sistema, mas você deve usa-los de preferência apenas se você estiver passando por um problema parecido, o que tem sido bem comum no apache 2.0 integrado ao cPanel.

Ou uma solução mais simples:

ipcs -s | grep nobody

Isso lhe mostrá os rótulos "semaphore-arrays" que por algum motivo que não consegui identificar são deixados abertos. Você verá uma extensa lista.

Isso mata tudo:

ipcs -s | grep nobody | perl -e 'while () { @a=split(/\s+/); print `ipcrm sem $a[1]`}'

Agora reinicie o apache:
service httpd restart
Pronto. Problema solucionado, pelo menos até voce tomar vergonha (como eu) e compilar o sistema com o easyapache usando o apache2.2.

2 comentários:

Anônimo disse...

Pior que não adianta compilar o apache com o 2.2, porque o erro acontece do mesmo jeito...

Aliás... eu não sei oque diabos faz isso acontecer exatamente, mas acho que deva ser algum modulo que esteja bugando, o problema é descobrir qual ^^

Se voce ainda não atualizou sua versão do Apache, não o faça...a dor de cabeça vai ser menor :P

Alexandre Duran disse...

O Apache 2.2 é fundamental - e muito superior a 1.3. O problema é que são tantos módulos e MPMs a serem compilados e otimizados que dá muito trabalho mesmo.

Não é coisa simples.