Leander Schäfer
2015-Jan-26 00:50 UTC
imap-login: Fatal: pipe() failed: Too many open files
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
Leander Schäfer
2015-Jan-26 01:13 UTC
imap-login: Fatal: pipe() failed: Too many open files
I just checked my ulimit again and it really seems like it hhas more than enough - so I still don't understand what I've configured wrong here ;/ root at WM-01 [~]$ su -m dovecot -c "ulimit -a" socket buffer size (bytes, -b) unlimited core file size (blocks, -c) unlimited data seg size (kbytes, -d) 33554432 file size (blocks, -f) unlimited max locked memory (kbytes, -l) 131072 max memory size (kbytes, -m) 7067352 open files (-n) 205587 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 11278 virtual memory (kbytes, -v) unlimited swap size (kbytes, -w) unlimited Best Regards, Leander Am 26.01.15 um 01:50 schrieb Leander Sch?fer:> 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
Edgar Pettijohn
2015-Jan-26 01:18 UTC
imap-login: Fatal: pipe() failed: Too many open files
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
Am 26.01.2015 um 02:13 schrieb Leander Sch?fer:> I just checked my ulimit again and it really seems like it has more > than enough - so I still don't understand what I've configured wrong > here ;/ > > root at WM-01 [~]$ su -m dovecot -c "ulimit -a" > socket buffer size (bytes, -b) unlimited > core file size (blocks, -c) unlimited > data seg size (kbytes, -d) 33554432 > file size (blocks, -f) unlimited > max locked memory (kbytes, -l) 131072 > max memory size (kbytes, -m) 7067352 > open files (-n) 205587 > pipe size (512 bytes, -p) 1 > stack size (kbytes, -s) 8192 > cpu time (seconds, -t) unlimited > max user processes (-u) 11278 > virtual memory (kbytes, -v) unlimited > swap size (kbytes, -w) unlimitedbesides that "imap-login" typically does *not* run under the same user (here dovenull versus dovecot) who tells you that 205587 is "more than enough" just because it is a high value? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: OpenPGP digital signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20150126/2341e105/attachment.sig>
Edgar Pettijohn
2015-Jan-26 01:24 UTC
imap-login: Fatal: pipe() failed: Too many open files
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