Too many references: cannot splice

Sebastian Köhler sk at tyrion.de
Fri Dec 2 16:23:47 UTC 2016


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
}


More information about the dovecot mailing list