Hi!
This is an unfortunate regression in 2.3.19, which has already been fixed. See
https://github.com/dovecot/core/commit/30e69471792aec818dbbfa64adb868db14a6d8e2.patch
It will be part of next release.
Aki
> On 19/05/2022 23:33 Christoph F?rstaller <christoph at
fuerstaller.com> wrote:
>
>
> Hello,
>
> I've upgraded dovecote to 2.3.19 (b3ad6004dc) a week ago. Since then I
> get an error when searching for messages from all users in a particular
> folder:
>
> doveadm search -A mailbox 'INBOX.learn'
> Error: auth-master: userdb list: Disconnected unexpectedly
> doveadm: Error: Failed to iterate through some users
>
> This is in the logs:
> dovecot: auth: Panic: file userdb-blocking.c: line 124
> (userdb_blocking_iter_next): assertion failed: (ctx->conn != NULL)
> dovecot: auth: Error: Raw backtrace:
> /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x41) [0x7f1c12675c91]
> -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x22) [0x7f1c12675db2]
> -> /usr/lib/dovecot/libdovecot.so.0(+0x10b0bb) [0x7f1c126830bb] ->
> /usr/lib/dovecot/libdovecot.so.0(+0x10b157) [0x7f1c12683157] ->
> /usr/lib/dovecot/libdovecot.so.0(+0x5d375) [0x7f1c125d5375] ->
> dovecot/auth [0 wait, 0 passdb, 0 userdb](+0x157a7) [0x55e0278287a7] ->
> dovecot/auth [0 wait, 0 passdb, 0 userdb](+0x1954b) [0x55e02782c54b] ->
> dovecot/auth [0 wait, 0 passdb, 0 userdb](+0x36ca7) [0x55e027849ca7] ->
> dovecot/auth [0 wait, 0 passdb, 0 userdb](+0x2ab86) [0x55e02783db86] ->
> /usr/lib/dovecot/libdovecot.so.0(io_loop_handle_timeouts+0x15f)
> [0x7f1c1269976f] ->
> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xcf)
> [0x7f1c1269b02f] ->
> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x54)
> [0x7f1c12699a54] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40)
> [0x7f1c12699bc0] ->
> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x17)
> [0x7f1c1260b207] -> dovecot/auth [0 wait, 0 passdb, 0
> userdb](main+0x3c8) [0x55e027829588] ->
> /lib/x86_64-linux-gnu/libc.so.6(+0x29fd0) [0x7f1c122cbfd0] ->
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x7d) [0x7f1c122cc07d]
> -> dovecot/auth [0 wait, 0 passdb, 0 userdb](_start+0x2e)
[0x55e02782976e]
> dovecot: auth: Fatal: master: service(auth): child 19452 killed with
> signal 6 (core dumped)
>
> I've system users from passwd and users from a passwd-file:
> userdb {
> driver = passwd
> }
> userdb {
> args = username_format=%u /etc/dovecot/users
> driver = passwd-file
> }
>
> If I disable the passwd-file, a search works fine, but not with both
> user backends.
>
> This worked fine with version 2.3.18.
>
> Someone discovered this behavior too?
>
> This is my config:
> # 2.3.19 (b3ad6004dc): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.19 (4eae2f79)
> # OS: Linux 5.13.0-41-generic x86_64 Ubuntu 21.10
> auth_mechanisms = plain login
> auth_username_format = %n
> default_vsz_limit = 2 G
> mail_location = maildir:~/Maildir
> mail_privileged_group = mail
> 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 = INBOX.
> separator = .
> }
> passdb {
> driver = pam
> }
> passdb {
> args = scheme=ARGON2I username_format=%u /etc/dovecot/users
> driver = passwd-file
> }
> plugin {
> sieve = file:~/sieve;active=~/.dovecot.sieve
> sieve_before = /var/mail/moveSpam.sieve
> }
> protocols = imap lmtp sieve
> service auth {
> unix_listener /var/spool/postfix/private/auth {
> group = postfix
> mode = 0660
> user = postfix
> }
> }
> service imap-login {
> inet_listener imap {
> port = 0
> }
> }
> service lmtp {
> unix_listener /var/spool/postfix/private/dovecot-lmtp {
> group = postfix
> mode = 0600
> user = postfix
> }
> }
> service managesieve-login {
> inet_listener sieve {
> port = 4190
> }
> }
> ssl = required
> ssl_cert = </etc/letsencrypt/live/mailserver/fullchain.pem
> ssl_client_ca_dir = /etc/ssl/certs
> ssl_dh = # hidden, use -P to show it
> ssl_key = # hidden, use -P to show it
> ssl_prefer_server_ciphers = yes
> userdb {
> driver = passwd
> }
> userdb {
> args = username_format=%u /etc/dovecot/users
> driver = passwd-file
> }
> verbose_proctitle = yes
> protocol lmtp {
> mail_plugins = " sieve"
> }
> protocol lda {
> mail_plugins = " sieve"
> }
> protocol imap {
> mail_max_userip_connections = 30
> }
>
> Best regards,
> Christoph