FS#55289 - dovecot: config: Error: BUG: Config client connection sent too much data

Attached to Project: Arch Linux
Opened by Anthony K. (crt.011) - Friday, 25 August 2017, 20:32 GMT
Last edited by Doug Newgard (Scimmia) - Saturday, 26 August 2017, 13:12 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Today I started noticing a very odd Dovecot error in the mail logs across 2 replicated Dovecot hosts via dsync. I have searched the Dovecot archives, Google, back tracked, downgraded Dovecot to earlier versions from earlier this year and ruled everything out I could think of to no avail. There really are not any helpful reports with what I am specifically seeing. The strange thing is only vmail@domain.net is repeatedly shown in the log. The error looks like this.

Aug 24 22:46:02 orbitron dovecot: config: Error: BUG: Config client connection sent too much data
Aug 24 22:46:02 orbitron dovecot: doveadm(vmail@domain.net@domain.net@domain.net@domain.net@domain.net@domain.net@domain.net@domain.net@domain.net): Fatal: Error reading configuration: read(/var/run/dovecot/config) failed: read(size=8192) failed: Connection reset by peer

$ dovecot --version
2.2.31 (65cde28)

Dovecot #1: Linux kernel 4.9.36-x86_64
Dovecot #2: Linux kernel 4.12.8-x86_64

Here are the latest Dovecot updates performed this year.

[2017-04-29 14:45] [ALPM] upgraded dovecot (2.2.28-2 -> 2.2.28-3)
[2017-05-02 23:05] [ALPM] upgraded dovecot (2.2.28-3 -> 2.2.29.1-1)
[2017-06-11 17:20] [ALPM] upgraded dovecot (2.2.29.1-1 -> 2.2.30.2-1)
[2017-06-30 22:46] [ALPM] upgraded dovecot (2.2.30.2-1 -> 2.2.31-1)

When Dovecot was last updated back on June 30, I did `systemctl daemon-reload` but never actually restarted the Dovecot daemon until what seems like yesterday 8/24/17. The only thing I did yesteray was edit /etc/dovecot/conf.d/10-auth.conf by simply enabling "auth_username_format = %Lu" which was commented out before I enabled it. That is the only thing that I tested. After I was done testing I went back and commented out the same thing so it reads "#auth_username_format = %Lu" and of course restarted Dovecot. I really doubt this has anything to do with what I am reporting as auth is not the problem in this case.

The posted Dovecot configs are identical on both this host and the
replica host. The only thing I tested but reverted was enabling
`auth_username_format=%Lu` because I wanted to test logging in with
username@domain which did work just fine, but I wanted to continue just
logging in with only the username, so I commented the option and
restarted dovecot so the option now looks like it does by default.

#auth_username_format=%Lu

Strange thing is that Dovecot appears to be working as expected (i.e
still retrieving IMAP mail, can authenticate just fine, etc). I can only think this
may be a bug with the latest Dovecot releases in 2017 or maybe it is not an upstream problem, I don't know yet.

While spending time trying to resolve the annoying error I reported in
the logs I looked over https://www.dovecot.org/doc/NEWS and only found 1
change for 2.2.32 related to Config:

v2.2.32 2017-08-24
* config: Log a warning if plugin { key=no } is used explicitly. v2.3
will support "no" properly in plugin settings, but for now any value at
all for a boolean plugin setting is treated as "yes", even if it's
written as explicit "no". This change will now warn that it most likely
won't work as intended.

Additional info:
* package version(s): Dovecot 2.2.31-1

Also tested with:
[2017-04-29 14:45] [ALPM] upgraded dovecot (2.2.28-2 -> 2.2.28-3)
[2017-05-02 23:05] [ALPM] upgraded dovecot (2.2.28-3 -> 2.2.29.1-1)
[2017-06-11 17:20] [ALPM] upgraded dovecot (2.2.29.1-1 -> 2.2.30.2-1)
[2017-06-30 22:46] [ALPM] upgraded dovecot (2.2.30.2-1 -> 2.2.31-1 )

* config and/or log files etc.
# doveconf -n
# 2.2.31 (65cde28): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.19 (e5c7051)
# OS: Linux 4.9.36-x86_64-linodexx x86_64 Arch Linux
auth_mechanisms = plain login
base_dir = /var/run/dovecot/
dict {
expire = ldap:/etc/dovecot/dovecot-ldap.conf.ext
quota = ldap:/etc/dovecot/dovecot-ldap.conf.ext
}
doveadm_password = # hidden, use -P to show it
doveadm_port = 4343
mail_attachment_hash = %{sha256}
mail_gid = vmail
mail_location = maildir:%Lh/Maildir/:INDEX=%Lh/Maildir/
mail_plugins = " mailbox_alias acl quota stats mail_log notify replication"
mail_privileged_group = mail
mail_uid = vmail
mailbox_list_index = yes
maildir_very_dirty_syncs = yes
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 spamtest spamtestplus
namespace inbox {
inbox = yes
location =
mailbox Archive {
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Flagged {
special_use = \Flagged
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
auto = subscribe
special_use = \Sent
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox virtual/All {
auto = no
special_use = \All
}
prefix =
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename
mail_log_fields = uid box msgid size
mail_replica = tcp:orbitron.domain.net:4343
quota = maildir:User quota
quota_grace = 10%%
quota_rule = *:storage=2G
quota_rule2 = Trash:storage=+10%%
quota_rule3 = Spam:storage=+20%%
quota_status_nouser = DUNNO
quota_status_overquota = 552 5.2.2 Mailbox is full
quota_status_success = DUNNO
quota_warning = storage=100%% quota-warning +100 %u
quota_warning2 = storage=95%% quota-warning +95 %u
quota_warning3 = storage=80%% quota-warning +80 %u
quota_warning4 = -storage=100%% quota-warning -100 %u
sieve = ~/.dovecot.sieve
sieve_dir = ~/.sieve
sieve_extensions = +spamtest +spamtestplus +relational
+comparator-i;ascii-numeric
stats_refresh = 30 secs
stats_track_cmds = yes
}
protocols = imap pop3 lmtp sieve
service aggregator {
fifo_listener replication-notify-fifo {
mode = 0666
user = vmail
}
unix_listener replication-notify {
mode = 0666
user = vmail
}
}
service auth {
unix_listener auth-userdb {
group = vmail
mode = 0660
user = vmail
}
}
service config {
unix_listener config {
user = vmail
}
}
service dict {
unix_listener dict {
group = vmail
mode = 0660
user = vmail
}
user = root
}
service doveadm {
inet_listener {
port = 4343
}
user = vmail
}
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service lmtp {
inet_listener lmtp {
address = 66.175.xxx.xx 192.168.176.128 127.0.0.1 ::1
port = 24
}
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
user = vmail
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
vsz_limit = 64 M
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
port = 12340
}
}
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
unix_listener quota-warning {
user = vmail
}
user = dovecot
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0666
}
}
service stats {
fifo_listener stats-mail {
mode = 0600
user = vmail
}
}
ssl_ca = </etc/dovecot/ssl/STAR_domain_net.ca-bundle
ssl_cert = </etc/dovecot/ssl/STAR_domain_net.crt
ssl_key = # hidden, use -P to show it
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
default_fields = home=/home/vmail/%d/%u
driver = ldap
}
protocol lmtp {
mail_plugins = " mailbox_alias acl quota stats mail_log notify
replication sieve"
postmaster_address = postmaster@domain.email
}
protocol lda {
mail_plugins = sieve quota
postmaster_address = postmaster@domain.email
syslog_facility = mail
}
protocol imap {
mail_max_userip_connections = 10
mail_plugin_dir = /usr/lib/dovecot/modules
mail_plugins = " mailbox_alias acl quota stats mail_log notify
replication imap_quota"
}
protocol sieve {
mail_max_userip_connections = 10
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_max_line_length = 65536
}

Steps to reproduce:
Install latest Dovecot from [Community], configure it as needed and start the service, then `tail -f /path/to/mail.log`
This task depends upon

Closed by  Doug Newgard (Scimmia)
Saturday, 26 August 2017, 13:12 GMT
Reason for closing:  Not a bug
Additional comments about closing:  User requested: Somehow /var/lib/dovecot got corrupt. Deleting it and restarting dovecot recreated the directory and seems to have resolved the annoying error in the logs.

Loading...