> I'm still thinking this has more to do with your system than anything in
> Dovecot.
Yes. We were finally able to reliably reproduce this.
It looks like a strange bug in NetBSD's NFS: If you are over quota and write a 
small amount (probably less tha an NFS block) of data, the write() call will 
succeed and a following fsync() (or close()) will fail.
However, when you insert a utimes() or futimes() call after the write(), the 
fsync()/close() will report success.
I didn't dig into when Dovecot does that utimes() call, but it sometimes does 
and sometimes doesn't, explaining our problems to reproduce the bug.

Reply via email to