14 Apr
2009
14 Apr
'09
1:30 a.m.
On Mon, 2009-04-13 at 14:29 -0500, Mike Abbott wrote:
My mail server consumed all of its configured file table slots and
started returning ENFILE ("Too many open files in system") for many
operations. This wreaked havoc with dovecot-1.1.13. Here are some
areas where dovecot should detect and more gracefully handle ENFILE
error returns:
I also just tried making nfs_safe_open() fail randomly and reproducing these.
- Deliver should report an error more helpful than "Unknown internal
error" when fdatasync_path fails: deliver(user): Apr 10 14:53:20 Error: fdatasync_path(/Volumes/MailData/ user/new) failed: Too many open files in system deliver(user): Apr 10 14:53:20 Info: msgid=<...>: save failed to
INBOX: BUG: Unknown internal error
http://hg.dovecot.org/dovecot-1.1/rev/576e77047959
- Index files should not be fscked when they could not be opened due
to ENFILE: ..- Dovecot should not crash when mail transaction logs become
corrupt, or appear to have become corrupt due to ENFILE.
I made nfs_safe_open() return failures randomly and found all kinds of bugs with it. I committed several fixes to hg, but I still get some weird errors once in a while, I'll try to debug more later..