Veja o que eu fiz:
-
Para testar meu problema, criei uma imagem do vmware do debian squeeze e limitei o IOPS do disco para 40 e a memória para 256MB na máquina.
-
Eu usei postfix, dovecot e procmail da mesma forma que os configurei na minha máquina de produção.
- Eu criei uma conta de usuário e criei arquivos grandes de vários gigabytes para o procmail escrever.
- Instalei o nmon e o sysstat para observar os valores de E / S e de tps do uso do disco para a unidade enquanto o Outlook e uma operação de cópia local estavam em execução.
O que eu encontrei:
- Foi relativamente fácil obter o Tempo Limite de Comando com o postfix, mas ainda não consegui gerar o erro de bloqueio experimentado pelo usuário (exceto usando fcntl para bloquear o arquivo).
- Eu escolhi um arquivo de 4 GB para ser meu arquivo de salvamento, em seguida, executei "Reparar pasta" na pasta IMAP no Outlook 2011 ao copiar um arquivo de 1,3 GB no servidor. Isso causou E / S suficiente no disco do servidor para gerar tempos limite no procmail.
Não é completamente conclusivo, mas parece que uma alta carga de disco junto com um cliente do Outlook acessando o arquivo de mensagens que o procmail está tentando bloquear pode atrasar a entrega de mensagens o tempo suficiente para atingir o tempo limite definido no postfix.
O que eu não tentei:
- Eu não re-compilei a fonte e desativei o bloqueio conforme a FAQ 16 na fonte do procmail. No meu caso, o erro é bastante raro e há a alternativa de girar o arquivo salvo regularmente para mantê-lo pequeno.