imap-login: Fatal: pipe() failed: Too many open files
Leander Schäfer
info at netocean.de
Mon Jan 26 01:13:20 UTC 2015
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
More information about the dovecot
mailing list