imap-login: Fatal: pipe() failed: Too many open files

Edgar Pettijohn edgar at pettijohn-web.com
Mon Jan 26 01:24:32 UTC 2015


Sorry didn't scroll to the bottom to see the dovecot -n.  I'm assuming 
freebsd has an /etc/login.conf similiar to openbsd.  If so you may need 
to do something similiar to this:

dovecot:\
                 :openfiles-cur=512:\
                 :openfiles-max=2048:\
                 :tc=daemon:

Rebuild the login.conf.db file if necessary:

         # [ -f /etc/login.conf.db ] && cap_mkdb /etc/login.conf

Hope this helps.

On 01/25/15 19:18, Edgar Pettijohn wrote:
> What is the OS?
>
> On 01/25/15 18:50, Leander Schäfer wrote:
>> Hi
>>
>> I keep on getting errors and can't connect/login to Dovecot. I did my 
>> research but unfortunately without success. It is for sure not ulimit 
>> because ulimit is set to unlimited per default already. Still , it 
>> complains about "Too many open files" but this is a test system and 
>> the service dovecot and postfix have just been started. No one except 
>> me is testing on this system. This is very weired ;/
>>
>>
>> root at WM-01 [~]$ service dovecot stop; service postfix stop ; echo "" 
>> > /var/log/maillog ; echo "" > /var/log/slapd.log ; service postfix 
>> start ; service dovecot start
>> Stopping dovecot.
>> Waiting for PIDS: 3245.
>> postfix/postfix-script: stopping the Postfix mail system
>> postfix/postfix-script: starting the Postfix mail system
>> Starting dovecot.
>>
>> root at WM-01 [~]$ telnet 127.0.0.1 143
>> Trying 127.0.0.1...
>> Connected to localhost.
>> Escape character is '^]'.
>> Connection closed by foreign host.
>>
>> root at WM-01 [~]$ cat /var/log/mail
>> Jan 26 01:39:12 WM-01 dovecot: imap-login: Fatal: pipe() failed: Too 
>> many open files
>> Jan 26 01:39:12 WM-01 dovecot: master: Error: service(imap-login): 
>> command startup failed, throttling for 4 secs
>>
>>
>>
>> If I uncoment port = 0 in POP and IMAP then it looks even worse then 
>> above. Telnet is not even closed by remote host and three of the "Too 
>> many open files" errors are showing up in maillog:
>>
>>
>>
>> root at WM-01 [~]$ telnet 127.0.0.1 143
>> Trying 127.0.0.1...
>> Connected to localhost.
>> Escape character is '^]'.
>> ^]
>> telnet> Connection closed.
>> root at WM-01 [~]$ cat /var/log/maillog
>>
>> Jan 26 01:45:19 WM-01 postfix/postfix-script[60560]: starting the 
>> Postfix mail system
>> Jan 26 01:45:19 WM-01 postfix/master[60562]: daemon started -- 
>> version 1.0, configuration /usr/local/etc/postfix
>> Jan 26 01:45:19 WM-01 dovecot: master: Dovecot v2.2.15 starting up 
>> for imap, pop3, lmtp
>> Jan 26 01:45:24 WM-01 dovecot: imap-login: Error: socket(login) 
>> failed: Too many open files
>> Jan 26 01:45:24 WM-01 dovecot: imap-login: Error: auth: 
>> connect(login) failed: Too many open files
>> Jan 26 01:45:24 WM-01 dovecot: imap-login: Error: net_accept() 
>> failed: Too many open files
>> root at WM-01 [~]$
>>
>>
>>
>>
>>
>>
>> Does anyone have an idea what could be wrong here? I attached the 
>> relevant configuration below. I use OpenLDAP as backend.
>> Please let me know if you need more information. Thank you very much.
>>
>> Best Regards,
>> Leander
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> # ========================== dovecot -n ============================== #
>>
>>
>> # 2.2.15: /usr/local/etc/dovecot/dovecot.conf
>> # Pigeonhole version 0.4.6 (3e924b1b6c5c+)
>> # OS: FreeBSD 10.1-RELEASE amd64  ufs
>> auth_debug = yes
>> auth_debug_passwords = yes
>> auth_failure_delay = 3 secs
>> auth_mechanisms = plain login
>> auth_verbose = yes
>> auth_verbose_passwords = yes
>> base_dir = /var/run/dovecot/
>> disable_plaintext_auth = no
>> imap_client_workarounds = delay-newmail tb-extra-mailbox-sep 
>> tb-lsub-flags
>> lda_mailbox_autocreate = yes
>> lda_mailbox_autosubscribe = yes
>> login_greeting = Welcome to Mail Server.
>> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e 
>> %c %k
>> mail_debug = yes
>> mail_gid = vmail
>> mail_location = maildir:/var/mail/%d/%n
>> mail_plugins = quota expire mail_log notify
>> mail_privileged_group = mail
>> mail_temp_dir = /tmp/Dovecot
>> mail_uid = vmail
>> managesieve_notify_capability = mailto
>> managesieve_sieve_capability = fileinto reject envelope 
>> encoded-character vacation subaddress comparator-i;ascii-numeric 
>> relational regex imap4flags copy include variables body enotify 
>> environment mailbox date ihave duplicate
>> namespace inbox {
>>   inbox = yes
>>   location =
>>   mailbox Drafts {
>>     special_use = \Drafts
>>   }
>>   mailbox Junk {
>>     special_use = \Junk
>>   }
>>   mailbox Sent {
>>     special_use = \Sent
>>   }
>>   mailbox "Sent Messages" {
>>     special_use = \Sent
>>   }
>>   mailbox Trash {
>>     special_use = \Trash
>>   }
>>   prefix =
>> }
>> passdb {
>>   args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
>>   driver = ldap
>> }
>> plugin {
>>   expire = Trash
>>   mail_log_events = delete undelete expunge copy mailbox_delete 
>> mailbox_rename
>>   mail_log_fields = uid box msgid size
>>   quota = maildir:User quota
>>   quota_exceeded_message = Storage quota for this account has been 
>> exceeded, please try again later.
>>   quota_rule = *:storage=1G
>>   quota_rule2 = Trash:storage=+30%%
>>   quota_rule3 = Sent:storage=+30%%
>>   quota_warning = storage=90%% quota-warning 90 %u
>>   quota_warning2 = storage=75%% quota-warning 75 %u
>> }
>> pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>> postmaster_address = info at netocean.de
>> sendmail_path = /usr/local/sbin/sendmail
>> service auth {
>>   unix_listener /var/spool/postfix/private/auth {
>>     group = postfix
>>     mode = 0660
>>     user = postfix
>>   }
>>   unix_listener auth-userdb {
>>     group = vmail
>>     mode = 0600
>>     user = vmail
>>   }
>> }
>> service imap-login {
>>   inet_listener imaps {
>>     port = 0
>>   }
>> }
>> service lmtp {
>>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>>     group = postfix
>>     mode = 0660
>>     user = postfix
>>   }
>>   user = vmail
>> }
>> service pop3-login {
>>   inet_listener pop3s {
>>     port = 0
>>   }
>> }
>> service quota-warning {
>>   executable = script /usr/local/bin/quota-warning.sh
>>   unix_listener quota-warning {
>>     user = vmail
>>   }
>>   user = vmail
>> }
>> ssl = required
>> ssl_cert = </etc/ssl/RootCA/certs/192.168.50.101.pem
>> ssl_cipher_list = 
>> EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
>> ssl_key = </etc/ssl/RootCA/certs/192.168.50.101.key
>> ssl_prefer_server_ciphers = yes
>> ssl_protocols = !SSLv2 !SSLv3
>> userdb {
>>   driver = prefetch
>> }
>> userdb {
>>   args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
>>   driver = ldap
>> }
>> verbose_ssl = yes
>> protocol lda {
>>   mail_plugins = sieve
>> }
>> protocol imap {
>>   mail_max_userip_connections = 3
>>   mail_plugins = imap_quota imap_zlib
>> }
>> protocol pop3 {
>>   mail_max_userip_connections = 3
>> }
>>
>>
>>
>>
>>
>>
>>
>>
>> # ======================== dovecot/conf.d/auth-ldap.conf.ext 
>> =================== #
>>
>> passdb {
>>   driver = ldap
>>
>>   # Path for LDAP configuration file, see 
>> example-config/dovecot-ldap.conf.ext
>>   args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
>> }
>>
>> # "prefetch" user database means that the passdb already provided the
>> # needed information and there's no need to do a separate userdb lookup.
>> # <doc/wiki/UserDatabase.Prefetch.txt>
>> userdb {
>>   driver = prefetch
>> }
>>
>> userdb {
>>   driver = ldap
>>   args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
>>
>>   # Default fields can be used to specify defaults that LDAP may 
>> override
>>   #default_fields = home=/home/virtual/%u
>> }
>>
>>
>>
>>
>>
>> # ======================== dovecot/dovecot-ldap.conf.ext 
>> =================== #
>>
>> hosts = 127.0.0.1:389
>> dn = uid=dovecot,ou=systemuser,ou=mail,dc=MyDomain,dc=TLD
>> dnpass = TopSecret
>> tls = yes
>> tls_cert_file = /etc/ssl/RootCA/certs/192.168.50.101.pem
>> tls_key_file  = /etc/ssl/RootCA/certs/192.168.50.101.key
>> debug_level = -1
>> auth_bind = yes
>> ldap_version = 3
>> base = ou=accounts,ou=mail,dc=MyDomain,dc=TLD
>> scope = subtree
>> user_attrs = mailStorageDirectory=home, mailUidNumber=uid, 
>> mailGidNumber=gid, mailQuotaSize=quota_rule=*:bytes=%$, 
>> mailQuotaCount=quota_rule2
>> user_filter = (&(objectClass=mailAccount)(mailAddress=%u))
>> pass_attrs = mailAddress=user,mailPassword=password
>> pass_filter = 
>> (&(objectClass=mailAccount)(mailAccountStatus=active)(mailAddress=%u))
>> default_pass_scheme = SSHA



More information about the dovecot mailing list