28 Jun
2013
28 Jun
'13
2:51 p.m.
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.