Erro amavisd too many links lost connection


O problema:
A fila de mensagens do servidor de email (postfix, no meu caso) cresce, e as mensagens não são entregues. O comando mailq exibe erros parecidos com esse:
delivery temporarily suspended: lost connection with 127.0.0.1[127.0.0.1] while sending MAIL FROM
O log de erros de email (/var/log/mail.err) mostra as seguintes mensagens:
TROUBLE in process_request: Can't create directory /var/lib/amavis/tmp/amavis-20111221T160623-06971: Too many links at /usr/sbin/amavisd-new line 5081, <GEN28> line 4
A causa:
A mensagem 'Too many links' indica que o limite de subdiretórios do diretório /var/lib/amavis/tmp/ foi alcançado (em sistemas de arquivo ext3 esse limite é de aproximadamente 32.000 itens por diretorio). Assim, o antispam não consegue criar mais subdiretórios e deixa de entregar as mensagens.

Solução:
  1. Exclusão dos diretórios mais antigos que 1 dia e  com nome de  .spamassassin* que ficam no hd mesmo apos terem sido utilizados.
  2. Restart do serviço do amavis.
Comandos:
cd /var/lib/amavis/tmp
find -mtime +1 -name .spamassassin\* | xargs rm -r
/etc/init.d/amavis restart
Pode-se forçar o inicio da entrega das mensagens com o comando "postfix flush", ou aguardar que o próprio servidor recomece as tentativas de envio

Nenhum comentário: