Hello,
multiple times per day one of our Dovecot servers has the problem that it
suddenly refuses to accept new connections and then floods the logs with these
messages:
Dec 2 12:43:06 alfa3201 dovecot: pop3-login: Error: fd_send(pop3, 18) failed:
Too many references: cannot splice
Dec 2 12:43:07 alfa3201 dovecot: pop3-login: Error: fd_send(pop3, 18) failed:
Too many references: cannot splice
Dec 2 12:43:07 alfa3201 dovecot: imap-login: Error: fd_send(imap, 16) failed:
Too many references: cannot splice
Dec 2 12:43:07 alfa3201 dovecot: imap-login: Error: fd_send(imap, 16) failed:
Too many references: cannot splice
We have to either do a restart of the server or a doveadm kick on all users to
make it reachable again. On my search for a solution I found a similar report
from March[1] however without a fix.
[1] http://dovecot.org/pipermail/dovecot/2016-March/103514.html
dovecot -n
# 2.2.24 (a82c823): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.13 (7b14904)
# OS: Linux 4.4.17-040417-generic x86_64 Debian 8.6
auth_mechanisms = plain login
debug_log_path = /var/log/dovecot-debug.log
default_client_limit = 8003
default_process_limit = 2000
default_vsz_limit = 512 M
disable_plaintext_auth = no
listen = *
login_greeting = [CENSORED] - ready.
mail_location =
maildir:~/Maildir:CONTROL=/opt/dovecot/control/%n-control:INDEX=/opt/dovecot/index/%n
mail_plugins = " stats quota"
namespace inbox {
inbox = yes
location mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix = INBOX.
separator = .
}
passdb {
args = dovecot-%s
driver = pam
}
plugin {
quota = fs:%n(soft quota)
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
stats_command_min_time = 1 mins
stats_domain_min_time = 12 hours
stats_ip_min_time = 12 hours
stats_memory_limit = 16 M
stats_refresh = 30 secs
stats_session_min_time = 15 mins
stats_track_cmds = no
stats_user_min_time = 24 hours
}
protocols = " imap pop3"
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
}
service imap-login {
inet_listener imaps {
ssl = yes
}
}
service imap-postlogin {
executable = script-login /etc/dovecot/post-login/expire.sh
}
service imap {
executable = imap imap-postlogin
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service pop3-postlogin {
executable = script-login /etc/dovecot/post-login/expire.sh
}
service pop3 {
executable = pop3 pop3-postlogin
}
service quota-status {
executable = quota-status -p postfix
unix_listener /var/spool/postfix/private/quota {
group = postfix
mode = 0660
user = postfix
}
}
service stats {
fifo_listener stats-mail {
mode = 0666
user = dovecot
}
}
ssl_ca = </etc/ssl.crt/ca-admin.crt
ssl_cert = </etc/ssl.crt/admin.crt
ssl_key = </etc/ssl.key/admin.key
ssl_protocols = !SSLv2 !SSLv3
userdb {
driver = passwd
}
protocol imap {
imap_capability = +XLIST +NAMESPACE METADATA QUOTA
imap_idle_notify_interval = 1 mins
mail_max_userip_connections = 500
mail_plugins = " stats quota imap_quota imap_stats"
}
protocol pop3 {
mail_max_userip_connections = 500
mail_plugins = " stats quota"
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
Sebastian, On October 13th I sent a new email with subject "Too many references: cannot splice" with a reference to a lklm post. You will find more info. and a patch there. I can confirm the patch is working for us. Regards, Luis Ugalde On Fri, Dec 2, 2016 at 5:23 PM, Sebastian K?hler <sk at tyrion.de> wrote:> Hello, > > multiple times per day one of our Dovecot servers has the problem that it > suddenly refuses to accept new connections and then floods the logs with > these messages: > > Dec 2 12:43:06 alfa3201 dovecot: pop3-login: Error: fd_send(pop3, 18) > failed: Too many references: cannot splice > Dec 2 12:43:07 alfa3201 dovecot: pop3-login: Error: fd_send(pop3, 18) > failed: Too many references: cannot splice > Dec 2 12:43:07 alfa3201 dovecot: imap-login: Error: fd_send(imap, 16) > failed: Too many references: cannot splice > Dec 2 12:43:07 alfa3201 dovecot: imap-login: Error: fd_send(imap, 16) > failed: Too many references: cannot splice > > > We have to either do a restart of the server or a doveadm kick on all > users to make it reachable again. On my search for a solution I found a > similar report from March[1] however without a fix. > > > [1] http://dovecot.org/pipermail/dovecot/2016-March/103514.html > > > dovecot -n > > # 2.2.24 (a82c823): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.4.13 (7b14904) > # OS: Linux 4.4.17-040417-generic x86_64 Debian 8.6 > auth_mechanisms = plain login > debug_log_path = /var/log/dovecot-debug.log > default_client_limit = 8003 > default_process_limit = 2000 > default_vsz_limit = 512 M > disable_plaintext_auth = no > listen = * > login_greeting = [CENSORED] - ready. > mail_location = maildir:~/Maildir:CONTROL=/opt/dovecot/control/%n- > control:INDEX=/opt/dovecot/index/%n > mail_plugins = " stats quota" > namespace inbox { > inbox = yes > location > mailbox Drafts { > auto = subscribe > special_use = \Drafts > } > mailbox Spam { > auto = subscribe > special_use = \Junk > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > auto = subscribe > special_use = \Trash > } > prefix = INBOX. > separator = . > } > passdb { > args = dovecot-%s > driver = pam > } > plugin { > quota = fs:%n(soft quota) > sieve = ~/.dovecot.sieve > sieve_dir = ~/sieve > stats_command_min_time = 1 mins > stats_domain_min_time = 12 hours > stats_ip_min_time = 12 hours > stats_memory_limit = 16 M > stats_refresh = 30 secs > stats_session_min_time = 15 mins > stats_track_cmds = no > stats_user_min_time = 24 hours > } > protocols = " imap pop3" > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0666 > user = postfix > } > } > service imap-login { > inet_listener imaps { > ssl = yes > } > } > service imap-postlogin { > executable = script-login /etc/dovecot/post-login/expire.sh > } > service imap { > executable = imap imap-postlogin > } > service pop3-login { > inet_listener pop3 { > port = 110 > } > inet_listener pop3s { > port = 995 > ssl = yes > } > } > service pop3-postlogin { > executable = script-login /etc/dovecot/post-login/expire.sh > } > service pop3 { > executable = pop3 pop3-postlogin > } > service quota-status { > executable = quota-status -p postfix > unix_listener /var/spool/postfix/private/quota { > group = postfix > mode = 0660 > user = postfix > } > } > service stats { > fifo_listener stats-mail { > mode = 0666 > user = dovecot > } > } > ssl_ca = </etc/ssl.crt/ca-admin.crt > ssl_cert = </etc/ssl.crt/admin.crt > ssl_key = </etc/ssl.key/admin.key > ssl_protocols = !SSLv2 !SSLv3 > userdb { > driver = passwd > } > protocol imap { > imap_capability = +XLIST +NAMESPACE METADATA QUOTA > imap_idle_notify_interval = 1 mins > mail_max_userip_connections = 500 > mail_plugins = " stats quota imap_quota imap_stats" > } > protocol pop3 { > mail_max_userip_connections = 500 > mail_plugins = " stats quota" > pop3_client_workarounds = outlook-no-nuls oe-ns-eoh > } >
December 2, 2016 6:58 PM, "Luis Ugalde" <forondarena at gmail.com> wrote:> On October 13th I sent a new email with subject "Too many references: > cannot splice" with a reference to a lklm post.Thanks Luis for the info. I wonder why I did not find that post...> You will find more info. and a patch there. I can confirm the patch is > working for us.I have applied that patch to the server and I will report back in a couple of days if it is also working for us. -- Sebastian