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