[Dovecot] Handling ENFILE

Timo Sirainen tss at iki.fi
Tue Apr 14 01:30:13 EEST 2009


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.

> 1.  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

> 2.  Index files should not be fscked when they could not be opened due  
> to ENFILE:
..
> 3.  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..
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20090413/05f2b0e5/attachment-0001.bin 


More information about the dovecot mailing list