We are using Postfix as an MTA delivering via Dovecot's LDA (with sieve). We 
also use Dovecot as a POP/IMAP server. Mail storage is Maildir on NFS, indexes 
are stored locally. Quotas are FS quotas enforced by the NFS server. The 
Dovecot version is 1.2.11.

Recently, for one user being over quota, some attempts to deliver mail bounced 
as expected while some others resulted in zero-sized Maildir files. I can 
verify zero-sized files in cur, while I cannot tell whether they were already 
zero-sized in new. However, since nobody except Dovecot is accessing the mail 
storage, it's either Dovecot's LDA or Dovecot's IMAP producing the zero-sized 
files.

Logs show successful delivery (deliver: stored mail into mailbox 'INBOX') but 
,,Corrupted index cache file 
/var/db/dovecot/indexes/XXX/.INBOX/dovecot.index.cache: Corrupted virtual size 
for uid=YYY: 0 != NNNN'' alerts on IMAP access.

It looks like all mails which correctly got bounced are >64KB while those 
resulting in zero-sized files are <64KB (there is one >32KB). My first guess 
would be that maybe for large files, write() fails, while for small ones, 
close() fails or there is some buffering involved for large files.

Reply via email to