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

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


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