Hi List,

after upgrading dovecot from version 2.2.33.2 to 2.3.7.2 I got a lot of error 
messages like the following if the process count of imap processes reaches 
nearly 1000 (~950 (there are a few pop-connections)).

Sep  5 11:27:32 mailbox1 dovecot: imap-login: Internal login failure (pid=27728 
id=116): user=<[email protected]>, method=PLAIN, rip=x.x.x.x, lip=x.x.x.x, 
session=<qETa7cqRzpZV3IEw> Sep  5 11:27:33 mailbox1 dovecot: imap-login: Error: 
master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable - 
http://wiki2.dovecot.org/SocketUnavailable (client-pid=27704, client-id=79, 
rip=x.x.x.x, created 511 msecs ago, received 0/4 bytes)

Our setup consists of some servers with dovecot as proxy/redirector as frontend 
servers, redirecting the logged in users to the backend servers storing the 
mailboxes. 
OS is CentOS 6 on both server types. The backend server in question has usually 
~ 2500 simultaneous imap connections. 

Before the update there where no problems.
During the update I merged the old 2.2 config into the new 2.3 from the fresh 
installed binary (Repo from dovecot.org).
As I found the failure above in the logfile I testet a lot, to figure out how 
to fix this, because for me it seemed to be some limit around 1000 
connections/processes anywhere in the config. In the end I changed the default 
value of "default_client_limit" from ist default 1000 to 8192 and the problem 
was fixed for the moment.
Now I'm trying to understand why this fixes the problem and what the difference 
is between 2.2 and 2.3. For me it seems like something changed in the 
architecture during the release change, but I didn't find anything. I looked 
into the release notes and also checked the differences beween the
2.2 and 2.3 default config values (using doveconf -d).

Can anyone help? 

Here is the output of doveconf -n 

# 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.7.2 
(7372921a) # OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.10 
(Final) auth_mechanisms = plain login default_client_limit = 8192 
disable_plaintext_auth = no mail_location = mdbox:%h mail_plugins = quota zlib 
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 index ihave duplicate mime foreverypart 
extracttext 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 = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  quota = dict:User quota::file:%h/dovecot-quota
  quota_warning = storage=90%% quota-warning 90 %u
  sieve = file:~/sieve;active=~/.dovecot.sieve
  zlib_save = gz
  zlib_save_level = 6
}
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh protocols = imap pop3 lmtp 
sieve service imap-login {
  process_min_avail = 12
  service_count = 0
}
service imap {
  process_limit = 8192
}
service lmtp {
  inet_listener lmtp {
    address = *
    port = 24
  }
}
service pop3-login {
  process_min_avail = 12
  service_count = 0
}
service pop3 {
  process_limit = 1024
}
service quota-warning {
  executable = script /scripts/quota.sh
  unix_listener quota-warning {
    user = vmail
  }
  user = vmail
}
ssl = no
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
verbose_proctitle = yes
protocol lmtp {
  mail_plugins = quota zlib sieve
}
protocol imap {
  mail_max_userip_connections = 30
  mail_plugins = quota zlib imap_quota
}
protocol pop3 {
  mail_plugins = quota zlib
}

greetings,
Oliver

Reply via email to