Problem solved!

I installed 2.3.18 (9dd8408c18), and now everything is working.

I guess that there must be things in 2.2.36-4 which don't work properly under Debian-11.

Excelsior!

--
 hippoman@gmail.com
 Take a hippopotamus to lunch today.


On Mon, May 30, 2022 at 3:18 PM Hippo Man <hippoman@gmail.com> wrote:
I've been running dovecot 2.2.36.4 (baf9232c1) on my Debian-8 host for a long time with no problems.
I am trying to move my email server to a Debian-11 host, and I have Dovecot configured exactly the same way that I have it configured under Debian-8.  However, when I try to connect to that server via imap, I always get the following error:

2022.05.30-18:17:21 imap-login: Info: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=<>, rip=::1, lip=::1, secured, session=<2+nKqj7g4t4AAAAAAAAAAAAAAAAAAAAB>

The output of "dovecot -n" appears at the bottom of this message.

I'm using mysql on the Debian-8 server for my authentication database, and I'm using mariadb on the Debian-11 server. The contents of the database on the new, Debian-11-based server are exactly the same as those on the Debian-8 server.

These are the contents of /opt/local/etc/dovecot/dovecot-sql.ext with the comments removed. I can manually run the following queries against the database with a valid login ID, and these queries succeed ...

driver = mysql

connect = host=127.0.0.1 user=postfix password=XXXXXXXX dbname=postfix

default_pass_scheme = CRYPT

password_query = SELECT username AS user, domain, password FROM mailbox WHERE (username = '%u' OR find_in_set('%u', loginid) > 0) AND active = 1
user_query = SELECT concat('/var/vmail/', maildir) AS home, 1003 AS uid, 1003 AS gid FROM mailbox WHERE (username = '%u' OR find_in_set('%u', loginid) > 0) AND active = 1

Also ...

% ls -Flas /var/run/dovecot/auth-userdb
0 srw-rw-rw- 1 dovecot root 0 May 30 18:30 /var/run/dovecot/auth-userdb=
% ls -Flas /opt/local/etc/dovecot/dovecot-master-users-passwords
4 -rw-rw-r-- 1 root dovecot 36 Dec 16  2018 /opt/local/etc/dovecot/dovecot-master-users-passwords
% ls -Flas /opt/local/etc/dovecot/ad-hoc-userdb
4 -rw-rw-r-- 1 root root 416 May  7 14:53 /opt/local/etc/dovecot/ad-hoc-userdb
% ls -Flas /opt/local/etc/dovecot/dovecot-master-users-passwords
4 -rw-rw-r-- 1 root dovecot 36 Dec 16  2018 /opt/local/etc/dovecot/dovecot-master-users-passwords

When I start up dovecot, the following line appears at the bottom of /var/log/mailclient.log ...
2022.05.30-18:31:37 master: Info: Dovecot v2.2.36.4 (baf9232c1) starting up for imap, pop3, lmtp, imap, pop3 (core dumps disabled)

However, if I then run "telnet localhost 143", the following lines appear at the end of /var/log/mailclient.log ...
2022.05.30-18:32:44 master: Error: service(auth): command startup failed, throttling for 2 secs
2022.05.30-18:32:44 auth: Fatal: master: service(auth): child 235327 killed with signal 11 (core dumps disabled)
2022.05.30-18:32:44 imap-login: Info: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=<>, rip=::1, lip=::1, secured, session=<8ezN4T7gJOAAAAAAAAAAAAAAAAAAAAAB>

The exact, same actions on my Debian-8 host do not fail.

And here is the output from "dovecot -n". As you can see, all "verbose" and debug-related options are set to "yes". Thank you for any suggestions you might be able to offer:

# 2.2.36.4 (baf9232c1): /opt/local/etc/dovecot/dovecot.conf
# OS: Linux 5.10.0-14-amd64 x86_64 Debian 11.3 ext4
# Hostname: my.hostname.com
auth_debug = yes
auth_debug_passwords = yes
auth_master_user_separator = :
auth_mechanisms = plain login
auth_socket_path = /var/run/dovecot/auth-userdb
auth_verbose = yes
auth_verbose_passwords = plain
base_dir = /var/run/dovecot/
disable_plaintext_auth = no
log_path = /var/log/mailclient.log
log_timestamp = "%Y.%m.%d-%H:%M:%S "
mail_debug = yes
mail_location = maildir:/var/vmail/%d/%n/
namespace inbox {
  inbox = yes
  list = 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 = INBOX.
  separator = .
}
passdb {
  args = /opt/local/etc/dovecot/dovecot-master-users-passwords
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = /opt/local/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
passdb {
  args = scheme=plain username_format=%u /opt/local/etc/dovecot/ad-hoc-userdb
  driver = passwd-file
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
postmaster_address = postmaster@my.hostname.com
protocols = imap pop3 lmtp imap pop3
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service imap {
  executable = imap postlogin
}
service pop3 {
  executable = pop3 postlogin
}
service postlogin {
  executable = script-login -d rawlog
}
ssl_cert = </etc/letsencrypt/live/my.hostname.com/fullchain.pem
ssl_cipher_list = HIGH:!SSLv2:!aNULL@STRENGTH
ssl_client_ca_dir = /etc/ssl/certs
ssl_client_ca_file = ca-certificates.crt
ssl_key =  # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
userdb {
  args = /opt/local/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
userdb {
  args = scheme=plain username_format=%u /opt/local/etc/dovecot/ad-hoc-userdb
  driver = passwd-file
}
protocol imap {
  mail_max_userip_connections = 128
}

--
 hippoman@gmail.com
 Take a hippopotamus to lunch today.